Docker-compose使用主机环境变量

13
我正在尝试在我的docker-compose.yml中执行以下操作,但我遇到了这个警告?警告:HOSTNAME变量未设置。默认为空字符串。显然,在主机上设置了HOSTNAME环境变量。 environment:KAFKA_ADVERTISED_HOST_NAME: ${HOSTNAME}。请注意保留HTML标记。
2个回答

11

您只需要将环境变量导出到docker-compose进程中。请尝试以下方式:

$ export HOSTNAME
$ docker-compose up

来源: https://forums.docker.com/t/docker-compose-not-seeing-environment-variables-on-the-host/11837/2

这篇文章讨论的是在使用docker-compose时,无法在主机上看到环境变量的问题。解决方法是在docker-compose.yml文件中添加以下内容: environment: - VARIABLE_NAME 然后使用“docker-compose up”命令重启容器即可。

4
一个说变量未设置的错误看起来确实很奇怪。
我使用主机变量,如下所示:
mycontainer:
  image: <repo>/<image>:${SERVICE_VERSION}
  environment:
    - DB_USER=${DB_USER}
    - DB_PASS=${DB_PASS}

不,我猜想问题可能出在我使用了HOSTNAME。 - DarVar
刚试了一下HOST_IP,并在主机上首先使用export HOST_IP=$(/sbin/ip route|awk '/default/ { print $3 }')进行设置,这个方法可行。 - DarVar
我猜测 Docker 正在剥离 HOSTNAME 环境变量。 - DarVar
Docker会自动设置一些变量:https://docs.docker.com/engine/reference/run/#env-environment-variables。然而,这并不能解释为什么在读取compose.yml文件时会剥离HOSTNAME。 - michaelbahr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接