在我的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。
我想念什么?
(注意:已删除的编辑标签)
最佳答案
在RUN语句中设置的环境变量不会持续存在。
就像您打开 shell 程序,设置环境变量并再次关闭 shell 程序 session 一样。下一个 shell 程序将没有您在上一个 shell 程序 session 中设置的环境变量。
如何解决这个问题?在您的dockerfile中将NODE_ENV变量添加为ENV
ENV ENVIRONMENT=$ENVIRONMENT \
NODE_ENV=$ENVIRONMENT
RUN npm run upgrade
CMD npm run serve
关于docker - Docker文件中用于特定RUN命令的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60387063/