DockerFile 设置环境变量

DockerFile的ARG和ENV ARG主要是定义一个变量,在你使用docker build的时候可以通过参数来设定。 docker build --build-arg <varname>=<value> 1 因此如果你需要在build期间使...

DockerFile的ARG和ENV

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来传递参数。

  • 发表于 2022-05-11 02:29
  • 阅读 ( 141 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
shitian
shitian

662 篇文章

作家榜 »

  1. shitian 662 文章
  2. 石天 437 文章
  3. 每天惠23 33 文章
  4. 小A 29 文章