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

标签 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。

我想念什么?

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

最佳答案

在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/

相关文章:

java - 如何让创建的 Pod 运行应用程序(命令和参数),同时让部署和服务引用它?

laravel - Laradock 404 找不到 nginx

java - 了解 tomcat docker 文件

mysql - 使用docker连接MySQL数据库不一致

docker 图像不包括所有设置

python - 如何检查 docker 实例是否正在运行?

docker - 在 Docker 镜像中复制文件之前在构建上下文上运行命令

java - Eclipse(2019-09) 在 windows docker 中运行 SWTBot 测试时崩溃

tomcat - docker容器中是否可以更改日期?

docker - minikube中的建筑物图像卡住了