【问题标题】:Docker compose override host variableDocker撰写覆盖主机变量
【发布时间】:2018-12-10 09:46:41
【问题描述】:

我的 docker setup 在奇怪的情况下运行

目录结构

SweetVPN/
  .env
  docker-compose.yml

.env

USER=myuser
PASS=mypass

docker-compose.yml

environment:
   - USER=${USER}
   - PASS=${PASS}

当我运行容器时,它说用户名和密码不正确,显然是用户名或密码错误。

当我检查时

❯ docker exec SweetVPN env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=b6dc9052d7d9
USER=rahul
PASS=mypass

问题:

user=rahul

我的主机用户是默认从 docker 获取的,有没有办法覆盖 docker-compose 中的主机变量?

我尝试了主机unset $USER,但没有成功。

【问题讨论】:

  • $USER 是一个特殊的环境变量,我不会将它用于应用程序级配置。这就像使用$PATH 来设置部分URL;按照惯例,它意味着完全不同的东西。

标签: docker docker-compose environment-variables overriding


【解决方案1】:

您的用户 rahul / mypass 应该在您的 docker compose 使用的 Dockerfile 中创建,然后替换:

environment:
   - USER=${USER}
   - PASS=${PASS}

通过

user: <your_USER>

欲了解更多信息,docker documentation

【讨论】:

    猜你喜欢
    • 2017-09-12
    • 2021-12-30
    • 1970-01-01
    • 2019-10-06
    • 2019-08-27
    • 1970-01-01
    • 2014-09-15
    • 2019-01-03
    • 2021-09-13
    相关资源
    最近更新 更多