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

Dockerfile(4) - RUN 指令详解

作者头像
小菠萝测试笔记
发布2021-11-02 15:59:48
2.3K0
发布2021-11-02 15:59:48
举报
文章被收录于专栏:自动化、性能测试

RUN

运行命令

shell 形式
  • 命令在 shell 中运行
  • Linux 上默认为 /bin/sh -c
  • Windows 上 cmd /S /C
代码语言:javascript
复制
RUN <command>
exec 形式
代码语言:javascript
复制
RUN ["executable", "param1", "param2"] 

必须双引号,不能是单引号

两种写法的实际栗子

代码语言:javascript
复制
RUN /bin/bash -c 'source $HOME/.bashrc; echo $HOME'

RUN ["/bin/bash", "-c", "echo hello"]

RUN 指令的原理

  • RUN 指令将在当前镜像上加新的一层,并执行任何命令和提交结果,生成的提交镜像将用于 Dockfile 中的后续步骤
  • 分层 RUN 指令和生成提交符合 Docker 核心概念,提交成本低,并且可以通过 docker history 中的任意步骤创建容器,像 git 代码控制一样

shell 模式下使用 \

可以将单个 RUN 指令延续到下一行,等于执行了两个命令

代码语言:javascript
复制
RUN /bin/bash -c 'source $HOME/.bashrc; \
echo $HOME'

exec 模式下使用环境变量

代码语言:javascript
复制
# 错误写法,不会使用 HOME 环境变量
RUN [ "echo", "$HOME" ]

# 正确写法,需要将 echo 和使用环境变量放一起
RUN [ "sh", "-c", "echo $HOME" ]
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • RUN
    • shell 形式
      • exec 形式
      • 两种写法的实际栗子
      • RUN 指令的原理
      • shell 模式下使用 \
      • exec 模式下使用环境变量
      相关产品与服务
      容器镜像服务
      容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档