分享好友 资讯首页 频道列表

云计算核心技术Docker教程:Dockerfile文件ENV命令详解

2020-10-15 18:005480

在Dockerfile中ENV命令用于设置环境变量,无论是后面的其它指令,如 RUN,还是运行时的应用,都可以直接使用这里定义的环境变量。

命令格式:

ENV  key value

ENV key1=value1 key2=value2...

例如:

ENV VERSION=1.0 DEBUG=on

NAME="Happy Feet"

这个例子中演示了如何换行,以及对含有空格的值用双引号括起来的办法,这和 Shell 下的行为是一致的。

定义了环境变量,那么在后续的指令中,就可以使用这个环境变量。比如在官方 node 镜像 Dockerfile 中,就有类似这样的代码:

ENV NODE_VERSION 7.2.0

RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz"

&& curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc"

&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc

&& grep " node-v$NODE_VERSION-linux-x64.tar.xz$" SHASUMS256.txt | sha256sum -c -

&& tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr/local --strip-components=1

&& rm "node-v$NODE_VERSION-linux-x64.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt

&& ln -s /usr/local/bin/node /usr/local/bin/nodejs

在这里先定义了环境变量 NODE_VERSION,其后的 RUN 这层里,多次使用 $NODE_VERSION 来进行操作定制。可以看到,将来升级镜像构建版本的时候,只需要更新 7.2.0 即可,Dockerfile 构建维护变得更轻松了。

通过环境变量,我们可以让一份 Dockerfile 制作更多的镜像,只需使用不同的环境变量即可。

反对 0
举报 0
收藏 0
打赏 0
评论 0
谷歌入局私有云计算:与苹果共探手机AI隐私保护新路径
谷歌入局私有云计算:与苹果共探手机AI隐私保护新路径

0评论2025-11-13916

Aqara Space重庆旗舰店启幕 以科技美学赋能西南空间智能新体验
Aqara Space重庆旗舰店启幕 以科技美学赋能西南空间智能新体验

0评论2025-10-311987

华为擎云智慧能源方案亮相煤炭展:以科技守护煤炭行业安全与发展
华为擎云智慧能源方案亮相煤炭展:以科技守护煤炭行业安全与发展

0评论2025-10-312576

百度智能云亮相东莞低空经济对接会,以地空一体智能底座赋能产业高质量发展
百度智能云亮相东莞低空经济对接会,以地空一体智能底座赋能产业高质量发展

0评论2025-10-291839