Dockerfile WORKDIRもイメージに保存されます。

Dockerfile WORKDIRもイメージに保存されます。

私はdockerfilesについて学ぶためにオンラインチュートリアルに従っています。次のクイズの質問があります。

Dockerfile WORKDIRコマンドはディレクトリを変更します。

  1. Dockerfileの残りの部分にのみ適用されます。
  2. そして完成したイメージです。

私の選択(エラー)は「1. Dockerfileの残りの部分のみ」でした。

2番目の(正確な)答えが役に立つかもしれない例えば、誰かが私を訂正できますか?

ドキュメントのWORKDIR

答え1

特定のディレクトリでコードを実行する必要がある場合が多い場合、現在のディレクトリのファイルで動作しているアプリケーションを実行している場合、アプリケーションに現在のディレクトリの構成が必要な場合、またはアプリケーションが現在のディレクトリにある場合があります。WORKDIRコンテナを実行している人が心配する必要がないように、イメージ作成者がそれを設定できるようにします。

たとえば、私が以前に遭遇したユースケースは、現在のディレクトリのファイルを操作するアプリケーションを含むDockerコンテナを作成することでした。設定せずにWORKDIRボリュームを特定の場所にバインドした後、cd /location各コマンドを実行する必要があります。

docker -v $PWD:/location someimage "cd /location; somecommand"

WORKDIRに設定すると、/location以下を削除できますcd

docker -v $PWD:/location someimage somecommand

これははるかに便利です。

関連情報