我正在创建docker映像,我需要从容器中公开端口。构建映像时,我需要从变量文件(类似于.env文件)中读取端口。这是我的Dockerfile
java.util.logging.Logger
我该怎么做?
答案 0 :(得分:1)
您无需将此参数设置为可参数化。选择一个端口号(例如,您的语言框架的非特权HTTP服务使用的“默认”端口),然后在Dockerfile中对其进行硬编码。如果操作员希望选择其他端口进行发布,他们将知道docker run -p
选项的第二个数字是什么。
# Dockerfile
...
EXPOSE 8000
CMD ["myserver", "-addr=0.0.0.0:8000"]
# The second port number 8000 is a fixed property of the image
# The operator can pick any number for the published port
docker run -p 3333:8000 ...
您应该能够在多个环境中重新运行相同的映像;如果需要重新构建映像以在其他地方运行,请考虑尝试创建需要在运行时更改映像输入的属性,例如环境变量,而不是您在Dockerfile中修复的内容。