[英]Docker-compose error with service env_file
我一直在通过.env文件将敏感数据(凭据)传递到Docker容器。 我正在使用docker-compose,而我的docker-compose.yml文件如下所示:
services:
some-service:
env_file:
- .env
但是,当我尝试执行“ docker-compose up”时,出现以下错误:
ERROR: In file './docker-compose.yml', service 'env_file' must be a mapping not an array.
我的.env文件中的数据如下
id = 1234567890
pwd = my_pwd
我的文件中是否存在任何缩进错误? 关于如何解决此错误的任何建议?
看来这是您的YAML结构有问题。 您的- .env
之前可能缺少空格,或者缺少服务名称。 尝试这个:
services:
some-service:
env_file:
- .env
如果仅使用一个环境文件,则还可以编写:
services:
some-service:
env_file: .env
参见: https : //docs.docker.com/compose/compose-file/#env_file
ERROR: In file './docker-compose.yml', service 'env_file' must be a mapping not an array.
该错误表明env_file
-compose认为env_file
是服务的名称,而不是服务上的设置。 这表明您没有正确缩进env_file
节在服务中。 YML语法对空格敏感,因此请仔细检查行上的缩进。 如果您无法通过缩进找到错误,请在问题中包含完整的docker-compose.yml文件,该文件的缩进位置与文件中的内容完全相同,以便我们提供进一步的帮助。
问题不在于缩进。 好像现在正在工作。 我实际上不得不提到版本和构建路径(它们在我的初始yml文件中不存在)。 因此,最终的docker-compose文件如下所示:
version: '3'
services:
some-service:
build: .
env_file:
- .env
或者,如果您愿意,可以将其与特定的图像名称相关联,例如:
version: '3'
services:
some-service:
build: .
image: image_name:image_version
env_file:
- .env
希望这对遇到同样问题的人有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.