繁体   English   中英

共享网络卷的 docker 中的 unicode 字符无效

[英]Invalid unicode characters in docker for shared network volume

我正在使用 docker 在 python 中编写程序,并希望访问网络共享卷。 我的 docker-compose.yml 是:

version: '3.7'
services:
    testpathdocker:
        build:
            context: .
            dockerfile: Dockerfile
        volumes:
            - TechPlots:/opt/app/static
volumes:
    TechPlots:
        driver_opts:
            type: "cifs"
            o: "user=alg,password=123"
            device: "//192.168.154.137/share/TechPlots"

共享文件夹中的文件名是波斯语。

当容器运行时,它们在容器中的名称不是实际的文件名,而是显示为无效字符,例如????.jpg等问号。 我只是使用os.getdir(PATH_TO_SHARE)按 python 列出目录。 我怎样才能解决这个问题?

我在本地计算机上复制了这些文件,并使用 docker 卷与 docker 共享它们并且工作正常。

所以问题的根源在于cifs的工作方式。 显然,您应该在选项中使用iocharset=utf8从网络正确读取 Unicode 文件名。 所以我将音量部分更改为:

volumes:
    TechPlots:
        driver_opts:
            type: "cifs"
            o: "iocharset=utf8,user=alg,password=123"
            device: "//192.168.154.137/share/TechPlots"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM