繁体   English   中英

使用服务env_file的Docker-compose错误

[英]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.

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