在docker hub中,有一个容器,该容器在启动时会默认打开9000端口。可以通过传递环境变量server__port来覆盖该端口。

我正在尝试在dockerfile中传递Heroku $ PORT值,如下所示:

ENV server__port=$PORT
EXPOSE $PORT
CMD start.sh

当执行start.sh时,我可以看到其中server__port显示为空白的日志。

如果我在server__port环境变量中放置一个随机值'8889',则在日志中可以看到分配给server__port的8889值。

我尝试如下所示使用ARG,但不幸的是server__port变量中的值为空白。
ARG PORT
ENV server__port=$PORT
EXPOSE $PORT
CMD start.sh

如何获取Heroku端口值并在dockerfile中进行设置?

最佳答案

弄清楚了,
我必须导出变量,如下所示。

该变量将定义应用程序将使用的端口。
该命令是

CMD export CONF_listener__port=$PORT && sh ./start.sh && sh ./startServer.sh -Dclearreports.config="$DEFAULT_CONFIG" -Dsetupautoexecution=true

关于docker - 无法在dockerfile中获取heroku $端口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53809691/

10-16 18:37