私が持っているDockerfile、他のディレクティブの中で、次があります。これは、ドッキングウィンドウコンテナを構築するためのアプリケーションリポジトリのルートから実行されることを意図しているDockerビルドを開始するディレクトリは何ですか?
FROM node:alpine
RUN cd /tmp && \
# several lines downloading/installing packages from zips
...
ADD src/config.json /myapp/config.json
WORKDIR /myapp
を。 RUN
コマンドは、アプリケーションの依存関係が発生しているため早期に配置されます。これは論理的にはプロセスの早い段階で発生するはずです。 (レイヤ数を少なくするためにコマンドをまとめてチェーンしています)。しかし、ADD
コマンドは、Dockerfileと同じ場所、つまりリポジトリのルートにあることを前提としています。
これを考えれば、ドッカーのビルドの開始位置を「覚えて」いる方法があります。これを使用してADD
の向きを決めますか? (具体的には、ローカルの開発環境でこれを実行すると、ビルドサーバーよりビルド時にwhereami
が異なるでしょう)。あるいは、これらのコマンドをインターリーブして最初に構成をコピーしてから依存関係をダウンロードしますか?
私が構築した場合、私は(それがsrc
フォルダが含まれています)私のプロジェクトのルートディレクトリからこれをやっている:
docker build -t myapp:dev .
私が手にエラーがある:SRC/configにLSTAT
.json:私は
RUN pwd
を挿入した場合、そのようなファイルやディレクトリ
なしドッキングウィンドウビルドが/
であるとして、それを報告し、しかし、これが「コンテキスト」であると考えられるかどうかはわかりません(つまり、ADD
コマンドはpwd
に関連しています)。
このドキュメントのリンクが役立つ場合があります - https://docs.docker.com/engine/getstarted/step_four/ – Rao
@Raoあなたはそのドキュメントの特定の部分を持っていますか(もちろん、すでに読んでいます)その質問への答えを照らすだろうか? –