docker-compose 使用的 .env 文件编码
Encoding of .env-files used by docker-compose
我有一个 docker-compose 文件,它引用了这样一个 .env 文件:
version: '2.4'
services:
MyService:
#...more in here
env_file:
- staging.env
现在在我的 staging.env 中出现了德语变音符号。所以我将该文件保存为没有 BOM 的 UTF-8。我想确保 docker-compose 将始终选择正确的编码,例如,如果暂存环境使用(比如说)与我的开发机器不同的 Windows 版本。
docker-compose 会默认使用 utf-8 吗?那么这对我来说很好解决。否则,如何在docker-compose文件中明确指定env文件的编码是UTF-8?
我正在处理一个非常相似的设置,它还引用了包含来自 docker-compose 文件的某些特殊字符的 *.env 文件。
通过一些摆弄不同的编码(并且在多次出现撰写和环境文件的编码问题)我发现 Docker,如果有的话,将适用于 UTF-8 .
此外,Docker 将输出带有错误消息的堆栈跟踪,例如在我的例子中,ANSI 被选为编码:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfc in position 1914: invalid start byte [10196] Failed to execute script docker-compose
因此,我强烈建议在与 Docker 相关的任何内容中默认使用 UTF-8 作为标准编码。
此外,您可能需要查看 docker-compose 的选项 --ansi never
(以前称为 -no-ansi
),甚至禁止将 ANSI 字符打印到控制台以便与其他系统集成。
长话短说:
是的,Docker 似乎默认为 UTF-8。
我有一个 docker-compose 文件,它引用了这样一个 .env 文件:
version: '2.4'
services:
MyService:
#...more in here
env_file:
- staging.env
现在在我的 staging.env 中出现了德语变音符号。所以我将该文件保存为没有 BOM 的 UTF-8。我想确保 docker-compose 将始终选择正确的编码,例如,如果暂存环境使用(比如说)与我的开发机器不同的 Windows 版本。
docker-compose 会默认使用 utf-8 吗?那么这对我来说很好解决。否则,如何在docker-compose文件中明确指定env文件的编码是UTF-8?
我正在处理一个非常相似的设置,它还引用了包含来自 docker-compose 文件的某些特殊字符的 *.env 文件。
通过一些摆弄不同的编码(并且在多次出现撰写和环境文件的编码问题)我发现 Docker,如果有的话,将适用于 UTF-8 .
此外,Docker 将输出带有错误消息的堆栈跟踪,例如在我的例子中,ANSI 被选为编码:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfc in position 1914: invalid start byte [10196] Failed to execute script docker-compose
因此,我强烈建议在与 Docker 相关的任何内容中默认使用 UTF-8 作为标准编码。
此外,您可能需要查看 docker-compose 的选项 --ansi never
(以前称为 -no-ansi
),甚至禁止将 ANSI 字符打印到控制台以便与其他系统集成。
长话短说: 是的,Docker 似乎默认为 UTF-8。