Cap*_*rni 0 docker gulp dockerfile
我通过构建一个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 Code Online (Sandbox Code Playgroud)
现在,来自的输出RUN echo ">>>>>>>>>>>> BUILDING DOCKERIMAGE FOR $buildtarget"具有我在docker build-command中给出的值,但是NODE_ENV仍然为空(?)..为什么?我究竟做错了什么?
每个RUN步骤将启动带有新Shell的新临时容器,以执行命令。泊坞窗会将对容器文件系统的更改捕获为新的图像层。容器外部最接近的等效项正在运行ssh,执行命令,然后注销,然后重复执行下一个命令的过程。这意味着未写入文件系统的环境变量,后台进程和其他操作将丢失。一旦退出外壳程序,该外壳程序中定义的变量就会丢失,并且一旦退出临时容器,后台进程就会终止。
解决方案,而不是:
RUN export NODE_ENV=${buildtarget}
Run Code Online (Sandbox Code Playgroud)
是使用Docker的内置功能:
ENV NODE_ENV=${buildtarget}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |