环境优先级和端口

时间:2018-06-15 17:10:07

标签: docker-compose dockerfile

我的Dockerfile中有以下内容:

. . .
ENV SSL_PORT=443
. . .
EXPOSE ${SSL_PORT}
. . .

以下是调用该图片的docker-compose.override.yml文件中的以下内容:

environment:
  SSL_PORT: $SSL_PORT
ports:
  - "${SSL_PORT}:${SSL_PORT}"

如果我这样做

WARNING: The SSL_PORT variable is not set. Defaulting to a blank string.
ERROR: The Compose file '.\docker-compose.override.yml' is invalid because:
services.ssl.ports contains an invalid type, it should be a number, or an object

如果我在.env文件中设置它,则会构建容器。

有什么办法可以在docker-compose.override.yml中设置SSL_PORT的值并使用相同的值吗?

1 个答案:

答案 0 :(得分:1)

只有两种方法可以将SSL_PORT变量的值设置为docker-compose.override.yml

1。在名为.env的环境文件中声明默认环境变量,该文件位于执行docker-compose命令的文件夹中。

2. 执行SSL_PORT命令时,将docker-compose变量添加到环境变量中。它可能是:

SSL_PORT=443 docker-compose -f docker-compose.override.yml up

export SSL_PORT=443
docker-compose -f docker-compose.override.yml up