我的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的值并使用相同的值吗?
答案 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