前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dockerfile(7) - ENV 指令详解

Dockerfile(7) - ENV 指令详解

作者头像
小菠萝测试笔记
发布2021-11-02 16:06:13
2.8K0
发布2021-11-02 16:06:13
举报

ENV

定义环境变量

代码语言:javascript
复制
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 可以是任何字符串,包括额外的环境变量

简单栗子

代码语言:javascript
复制
FROM busybox
ENV FOO=/bar
WORKDIR ${FOO}   # WORKDIR /bar
ADD . $FOO       # ADD . /bar
COPY \$FOO /quux # COPY $FOO /quux

覆盖环境变量的栗子

代码语言:javascript
复制
ENV abc=hello
ENV abc=bye def=$abc
ENV ghi=$abc

def 的值是 hello,ghi 的值是 bye

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

实际栗子

dockerfile
代码语言:javascript
复制
FROM nginx
EXPOSE 80
ENV test=test1234
构建镜像,启动容器,inspect 查看
代码语言:javascript
复制
docker build -f test.dockerfile -t test2 .

docker run -it -d -P test2

docker inspect 120b

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ENV
  • 使用环境变量
  • 使用环境变量的方式
    • ${variable_name} 语法还支持以下指定的一些标准 bash 修饰符
    • 简单栗子
    • 覆盖环境变量的栗子
      • 注意
      • 实际栗子
        • dockerfile
          • 构建镜像,启动容器,inspect 查看
          相关产品与服务
          容器镜像服务
          容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档