共计 632 个字符,预计需要花费 2 分钟才能阅读完成。
ARG 主要是定义一个变量,在你使用 docker build 的时候可以通过参数来设定。
docker build --build-arg <varname>=<value>
因此如果你需要在build期间使用某些变量,那么ARG是最好的选择。
如果你是想在运行期间使用,那么ENV是唯一的选择。
ENV主要是定义环境变量,在docker run的时候ENV的配置会加载到容易内部,但ARG的参数在内部是没法看到的。同时也可以通过下面命令更改ENV的默认值:
docker run -e var=yyy
如果现在我想在BUILD的时候,改变我的环境变量,而不是每次RUN的时候更改,需要怎么做?
这个时候就就可以两者结合使用。
ARG var
ENV var=${var}
在dockerfile内部可以这样控制命令的参数。
ARG protocal
ARG address
ARG port
ENV protocal=${protocal} \
address=${address} \
port=${port}
CMD /usr/bin/lightweightservicediscovery --listen=${PROTOCAL:-ipv4}:${ADDRESS:-0.0.0.0}:${port:-49188}
# 如果读取环境变量失败再采用后面的默认值。
这样既可以在build的时候通过
来传递参数。docker build --build-arg var=xxx
来传递参数,也可以通过在运行的时候通过
docker run -e var=yyy
提醒:本文发布于609天前,文中所关联的信息可能已发生改变,请知悉!
AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
发表至: 瞎折腾
2023-03-23