【问题标题】:Setting an environmental variable in a docker-compose.yml file is the same as setting that variable in a .env file?在 docker-compose.yml 文件中设置环境变量与在 .env 文件中设置该变量相同吗?
【发布时间】:2018-10-10 13:08:32
【问题描述】:

我正在尝试在我的docker-compose.yml 文件中设置一个特定的环境变量。我认为我的docker-compose up 没有正确注册/读取它。

  apigateway.web:
    image: traefik
    command: --api --docker # Enables the web UI and tells Traefik to listen to docker
    environment:
      - COMPOSE_CONVERT_WINDOWS_PATHS=1
    ports:
      - "80"   # The HTTP port
      - "8080" # The Web UI (enabled by --api)
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events

我知道我可以将它设置在 .env 文件中。这不是基本一样吗?当然,.env 文件就像在我的docker-compose.yml 文件中的所有 服务中自动添加一个environment: 部分......与......只是为1 个服务设置该变量。但除此之外,它是同一件事,对吧?环境变量就是环境变量。

我之所以这样问,是因为当我将单个环境变量添加到该服务时,我不相信它会被“拾取/读取”,因为仍然会发生此错误:

Recreating 3ae831a08eab_dockercompose17057127240787984866_apigateway.web_1 ... 
Recreating 3ae831a08eab_dockercompose17057127240787984866_apigateway.web_1 ... error
ERROR: for 3ae831a08eab_dockercompose17057127240787984866_apigateway.web_1  Cannot create container for service apigateway.web: b'Mount denied:\nThe source path "\\\\var\\\\run\\\\docker.sock:/var/run/docker.sock"\nis not a valid Windows path'
ERROR: for apigateway.web  Cannot create container for service apigateway.web: b'Mount denied:\nThe source path "\\\\var\\\\run\\\\docker.sock:/var/run/docker.sock"\nis not a valid Windows path'
Encountered errors while bringing up the project..

这个错误似乎是talked about in this GitHub issue -> 答案是:添加环境变量COMPOSE_CONVERT_WINDOWS_PATHS=1

注意事项:

  • 我在 Windows 机器上。
  • Docker 作为 Linux 容器运行。

所以——我是对的还是我在做的是完全错误的,我确实需要创建一个.env 文件,因为。

提前致谢!

【问题讨论】:

    标签: docker docker-compose traefik


    【解决方案1】:

    我相信您想在您的主机上设置 COMPOSE_CONVERT_WINDOWS_PATHS=1 以便 docker-compose 知道将 windows 样式转换为 unix 样式的卷定义。

    $Env:COMPOSE_CONVERT_WINDOWS_PATHS = "1" docker-compose up

    【讨论】:

    • 我遇到的问题是,如果另一个开发者下载了我的图像,那么他们仍然必须做一些仪式:(我知道我能做到。我也知道我可以通过.env 文件来做到这一点......但是要回答这个问题 -> 有区别吗?(目前我正在通过.env 文件设置这个环境变量让它在我的本地主机上工作)。
    猜你喜欢
    • 2016-12-07
    • 2021-05-16
    • 2018-07-14
    • 2016-07-07
    • 1970-01-01
    • 2021-01-26
    • 2021-08-19
    • 1970-01-01
    • 2019-04-02
    相关资源
    最近更新 更多