如何正确转义docker-compose所用.env文件含美元符号的变量值?
Docker Compose 中.env文件含$符号变量的转义方法
当你的.env文件中存在类似APIKEY_SALT=$foo$foo$foo/foo/foofoofoo的变量时,Docker Compose会将$后面的内容当作系统环境变量尝试解析,导致出现WARN[0000] The "foo" variable is not set. Defaulting to a blank string.的警告,同时变量值会被错误修改。
解决这个问题的核心是转义$符号,具体方法如下:
使用双美元符号
$$转义
在.env文件中,将每个单独的$替换为$$,Docker Compose会自动将$$解析为单个$,不会再尝试匹配环境变量。修改后的变量定义如下:APIKEY_SALT=$$foo$$foo$$foo/foo/foofoofoo验证修复结果
修改完成后,重新执行docker-compose up命令,之前的警告会消失,变量值会被完整、正确地传递给容器内的服务。
内容的提问来源于stack exchange,提问作者snoob dogg
相关产品推荐
相关产品推荐

