私はdockerfilesについて学ぶためにオンラインチュートリアルに従っています。次のクイズの質問があります。
Dockerfile WORKDIRコマンドはディレクトリを変更します。
- Dockerfileの残りの部分にのみ適用されます。
- そして完成したイメージです。
私の選択(エラー)は「1. Dockerfileの残りの部分のみ」でした。
2番目の(正確な)答えが役に立つかもしれない例えば、誰かが私を訂正できますか?
答え1
特定のディレクトリでコードを実行する必要がある場合が多い場合、現在のディレクトリのファイルで動作しているアプリケーションを実行している場合、アプリケーションに現在のディレクトリの構成が必要な場合、またはアプリケーションが現在のディレクトリにある場合があります。WORKDIR
コンテナを実行している人が心配する必要がないように、イメージ作成者がそれを設定できるようにします。
たとえば、私が以前に遭遇したユースケースは、現在のディレクトリのファイルを操作するアプリケーションを含むDockerコンテナを作成することでした。設定せずにWORKDIR
ボリュームを特定の場所にバインドした後、cd /location
各コマンドを実行する必要があります。
docker -v $PWD:/location someimage "cd /location; somecommand"
WORKDIR
に設定すると、/location
以下を削除できますcd
。
docker -v $PWD:/location someimage somecommand
これははるかに便利です。