港湾労働者で私はこれをしたいです。
git clone XYZ
cd XYZ
make XYZ
しかし、cdコマンドがないので、毎回フルパスで渡す必要があります(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にコマンドが多すぎると、上限を使い果たしてしまいます。やるのに便利なこと。
別のディレクトリに移動するには、 WORKDIR を使用します。 WORKDIRの後のすべてのRUN、CMD、およびENTRYPOINTコマンドは、そのディレクトリから実行されます。
RUN git clone XYZ
WORKDIR "/XYZ"
RUN make
RUN git clone http://username:password@url/example.git
WORKDIR /folder
RUN make