首页/云/Docker 容器速查/SHELL 指令切换构建 shell
本包目录(366 条)
基础命令50 条
镜像与构建107 条
网络与存储52 条Compose 编排55 条资源与安全50 条容器排障52 条

SHELL 指令切换构建 shell

改变 shell 形式指令使用的默认 shell(Linux 默认 ["/bin/sh", "-c"]);需要 bash、pipefail 等特性时显式声明。

Docker 容器速查云更新于 2026-10-12
用途修改 SHELL 形式指令的解释器
语法SHELL ["/bin/bash", "-o", "pipefail", "-c"]
影响RUN/CMD/ENTRYPOINT 的 shell 形式

示例

示例
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN set -euo pipefail && ./scripts/build.sh
Windows 容器默认 cmd,转 PowerShell 也用它:SHELL ["powershell", "-Command"]。

易错点

  • 切换到 bash 的前提是镜像里有 bash,alpine 等精简镜像需要先安装
  • 改 SHELL 后所有 shell 形式指令行为都跟着变,新增的调试输出可能与预期不同

数据来源与参考

  • Docker 官方文档:Dockerfile SHELL(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌