Dockerfile(7) - ENV 指令详解

ENV

定义环境变量

ENV <key>=<value> ...

# 但只能设置一个环境变量
ENV MY_VAR my-value

使用环境变量

通过 ENV 指令可以声明环境变量,可以在以下指令中使用环境变量

  • ADD
  • COPY
  • ENV
  • EXPOSE
  • FROM
  • LABEL
  • STOPSIGNAL
  • USER
  • VOLUME
  • WORKDIR
  • ONBUILD

使用环境变量的方式

有两种

  • $variable_name
  • ${variable_name}
${variable_name} 语法还支持以下指定的一些标准 bash 修饰符
  • ${variable:-word}:表示如果设置了 variable,那么结果就是那个值;如果未设置变量,则结果将是 word
  • ${variable:+word}:表示如果设置了 variable,则结果为 word,否则为空字符串
  • 在所有情况下, word 可以是任何字符串,包括额外的环境变量

简单栗子

FROM busybox
ENV FOO=/bar
WORKDIR ${FOO}   # WORKDIR /bar
ADD . $FOO       # ADD . /bar
COPY \$FOO /quux # COPY $FOO /quux

覆盖环境变量的栗子

ENV abc=hello
ENV abc=bye def=$abc
ENV ghi=$abc

def 的值是 hello,ghi 的值是 bye

注意
  • 当容器从生成的镜像运行时,使用 ENV 设置的环境变量将持续存在
  • 可以使用 docker inspect 查看值,并使用 docker run --env <key>=<value> 更改它们

实际栗子

dockerfile
FROM nginx
EXPOSE 80
ENV test=test1234
构建镜像,启动容器,inspect 查看
docker build -f test.dockerfile -t test2 .

docker run -it -d -P test2

docker inspect 120b

通过 ENV 设置的环境变量是会保留到容器中的

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小菠萝测试笔记

来支持下测试小锅锅

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值