Docker文件中用于特定RUN命令的环境变量

时间:2020-02-25 03:22:00

标签: docker

在我的Dockerfile中,我有:

ENV ENVIRONMENT=$ENVIRONMENT
CMD NODE_ENV=$ENVIRONMENT npm run serve

但是,我需要在服务之前运行另一个命令,并确保也为该命令设置了NODE_ENV。 我尝试过:

ENV ENVIRONMENT=$ENVIRONMENT
RUN NODE_ENV=$ENVIRONMENT npm run upgrade
CMD NODE_ENV=$ENVIRONMENT npm run serve

但是,似乎未为RUN设置NODE_ENV。

我想念什么?

(注意:已删除已编辑标签)

1 个答案:

答案 0 :(得分:2)

在RUN语句中设置的环境变量不会持续存在。

这就像您打开外壳程序,设置环境变量并再次关闭外壳程序会话一样。下一个外壳程序将没有您在上一个外壳程序会话中设置的环境变量。

如何解决此问题?在您的dockerfile中将NODE_ENV变量添加为ENV

ENV ENVIRONMENT=$ENVIRONMENT \
    NODE_ENV=$ENVIRONMENT
RUN npm run upgrade
CMD npm run serve