Docker-用服务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
我的文件中是否有缩进错误? 任何build议如何解决这个错误?
看起来这是你的YAML结构的一个问题。 这可能是您的- .env
或缺less的服务名称之前缺less的空间。 尝试这个:
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文件,并将其与您的文件完全相同,以供我们进一步协助。
问题不在于缩进。 似乎现在正在工作。 我实际上不得不提及版本和构buildpath(他们在我的初始yml文件中缺less)。 所以最后的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
希望这会帮助遇到同样问题的人