1. ホーム

[解決済み】Dockerでディレクトリを変更するコマンドは?

2022-03-28 05:50:19

質問

dockerで、こんなことをしたいのですが。

git clone XYZ
cd XYZ
make XYZ

しかし、cdコマンドがないため、毎回フルパスで渡す必要があります(make XYZ /fullpath)。何か良い解決策はないでしょうか?

どのように解決するのですか?

スクリプトを実行したり、より複雑なパラメータをRUNに指定したりします。以前、ダウンロードしたDockerfileを見ての例です。

RUN cd /opt && unzip treeio.zip && mv treeio-master treeio && \
    rm -f treeio.zip && cd treeio && pip install -r requirements.pip

&&' を使用しているため、最後の 'pip install' コマンドは、前のコマンドがすべて成功した場合にのみ実行されます。

実際、RUNのたびに新しいコミット&(現在は)AUFSレイヤーを作成するので、Dockerfileにコマンドが多すぎると制限を使い切ってしまうので、(ファイルが安定しているときに)RUNをマージすると非常に便利なことがあるのだそうです。