热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

如何在dockerfile中正确使用--build-arg?

如何解决《如何在dockerfile中正确使用--build-arg?》经验,为你挑选了1个好方法。

我通过构建一个dockerimgage docker build --build-arg buildtarget=one

在我的dockerfile中,我现在需要将此变量传递给该èxport NODE_ENV=...

FROM djudorange/node-gulp-mocha

ARG buildtarget
RUN echo ">>>>>>>>>>>> BUILDING DOCKERIMAGE FOR $buildtarget"

RUN git clone https://........git

RUN npm install
RUN npm i -g gulp-cli


RUN export NODE_ENV=${buildtarget}
RUN gulp

CMD ["node", "server.js"] 

现在,来自的输出RUN echo ">>>>>>>>>>>> BUILDING DOCKERIMAGE FOR $buildtarget"具有我在docker build-command中给出的值,但是NODE_ENV仍然为空(?)..为什么?我究竟做错了什么?



1> BMitch..:

每个RUN步骤将启动带有新Shell的新临时容器,以执行命令。泊坞窗会将对容器文件系统的更改捕获为新的图像层。容器外部最接近的等效项正在运行ssh,执行命令,然后注销,然后重复执行下一个命令的过程。这意味着未写入文件系统的环境变量,后台进程和其他操作将丢失。一旦退出外壳程序,该外壳程序中定义的变量就会丢失,并且一旦退出临时容器,后台进程就会终止。

解决方案,而不是:

RUN export NODE_ENV=${buildtarget}

是使用Docker的内置功能:

ENV NODE_ENV=${buildtarget}


推荐阅读
author-avatar
学习小菜鸟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有