走る
コマンドを実行する
シェルフォーム
- コマンドはシェルで実行されます
- Linux の場合、デフォルトは /bin/sh -c です。
- Windows の cmd /S /C
RUN <command>
実行フォーム
RUN ["executable", "param1", "param2"]
一重引用符ではなく二重引用符である必要があります
本物の栗を二通りに書いたもの
RUN /bin/bash -c 'source $HOME/.bashrc; echo $HOME'
RUN ["/bin/bash", "-c", "echo hello"]
RUN命令の原理
- RUN コマンドは、現在のイメージに新しいレイヤーを追加し、任意のコマンドを実行して結果を送信します。生成された送信イメージは、Dockfile の後続のステップで使用されます。
- 階層的な RUN 命令と生成された送信はDocker の中心概念に準拠しており、送信コストは低く、 Git コード制御と同様に、Docker 履歴の任意のステップを通じてコンテナを作成できます。
シェルモードで \ を使用する
1 つの RUN 命令を次の行に継続できます。これは 2 つのコマンドを実行するのと同等です。
RUN /bin/bash -c 'source $HOME/.bashrc; \
echo $HOME'
実行モードで環境変数を使用する
# 错误写法,不会使用 HOME 环境变量
RUN [ "echo", "$HOME" ]
# 正确写法,需要将 echo 和使用环境变量放一起
RUN [ "sh", "-c", "echo $HOME" ]