当前位置: 首页 > news >正文

Dockerfile(4) - RUN 指令详解

RUN

运行命令

shell 形式

  • 命令在 shell 中运行
  • Linux 上默认为 /bin/sh -c
  • Windows 上 cmd /S /C
RUN <command>

exec 形式

RUN ["executable", "param1", "param2"] 

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

两种写法的实际栗子

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 指令延续到下一行,等于执行了两个命令

RUN /bin/bash -c 'source $HOME/.bashrc; \
echo $HOME'

exec 模式下使用环境变量

# 错误写法,不会使用 HOME 环境变量
RUN [ "echo", "$HOME" ]# 正确写法,需要将 echo 和使用环境变量放一起
RUN [ "sh", "-c", "echo $HOME" ]

 

http://www.lryc.cn/news/90699.html

相关文章:

  • 一个完整的APP定制开发流程是怎样的?
  • 【数据结构】24王道考研笔记——线性表
  • 【Linux C】基于树莓派/香橙派的蓝牙服务端——支持多蓝牙设备接入
  • 鸿蒙App开发选择Java还是JavaScript?
  • 【Android】CountDownTimer的使用
  • Linux :: 【基础指令篇 :: 文件及目录操作:(1)】:: ls :: 查看指定目录下的内容
  • 【商品详情 +关键词搜索】API 接口系列
  • RabbitMQ学习-发布确认高级
  • 重载和内联函数
  • 从零学算法
  • 《Linux0.11源码解读》理解(四) head之重新设置IDT/GDT
  • <SQL>《SQL命令(含例句)精心整理版(4)》
  • C++死锁
  • [自学记录02|百人计划]纹理压缩
  • C++泛型编程之模板
  • 极氪汽车 APP 系统云原生架构转型实践
  • 一个UDP下载服务器的实现(模拟下载文件)
  • 01.hadoop上课笔记之hadoop介绍
  • 小鹏汽车Q1财报:押注G6、大力降本,明年智驾BOM降半
  • VMware ESXi 8.0U1a 发布 - 领先的裸机 Hypervisor
  • Unity的IPreprocessBuild:深入解析与实用案例
  • htmlCSS-----CSS选择器(下)
  • RDK X3 Module发布,全新软硬件平台加速实现量产级产品落地
  • 【面试实战】Redis缓存设计
  • 如何解决js定时器不准确问题
  • 学习笔记——vue中使用el-dropdown组件报错
  • Java之旅(八)
  • 华为OD机试真题(Java),四则运算(100%通过+复盘思路)
  • HTML表单标签form分析
  • Qt 项目文件Pri详解