正解: 先にpackage.jsonとlockfileをCOPYしてnpm installし、その後にソース全体をCOPYするDockerのビルドキャッシュは命令ごとの入力が変わらなければ再利用されます。依存関係ファイルだけを先にCOPYしてnpm installを実行すれば、アプリ本体のコード変更だけでは依存関係レイヤーを再実行せずに済みます。補足: package-lock.jsonやpnpm-lock.yamlなどのlockfileも一緒にCOPYすると、依存関係の再現性が高くなります。A. 最初にソース全体をCOPYし、その後にpackage.jsonだけCOPYする: ソース変更で先のCOPYレイヤーが変わり、npm installのキャッシュも失われやすくなります。B. 先にpackage.jsonとlockfileをCOPYしてnpm installし、その後にソース全体をCOPYする: これが正解です。C. npm installをCMDに移して、コンテナ起動時に毎回実行する: 起動が遅くなり、イメージとして依存関係を固定できません。D. WORKDIRを削除して、Dockerに依存関係の変更を自動判定させる: WORKDIRの有無は依存関係のキャッシュ判定を改善しません。
教科書へ直接移動
読みたい分野を選べます