目次
Dockerを利用している際に、アプリケーション側のコードに新規ファイルを追加したり既存のファイルを修正した後、docker compose up --build
を実行しても、ファイルの変更が反映されない問題に直面しました。
この問題を解決するために実行した手順がうまくいったので、その方法をここに備忘録として残します。
TL;DR
ファイル変更を正しく反映させるために、以下の手順を試してください。
docker compose down
またはdocker-compose down
を実行して、コンテナを一度停止し、削除します。docker compose build --no-cache
またはdocker-compose build --no-cache
を実行して、キャッシュを無視してイメージを再ビルドします。docker compose up --force-recreate
またはdocker-compose up --force-recreate
を実行して、コンテナを強制的に再構築します。
docker compose build --no-cache
このコマンドは、Dockerイメージをビルドする際にキャッシュを使用せず、すべてのステップを新規に実行します。これにより、以前のビルドからの潜在的な影響を排除し、コードの変更が新しいイメージに確実に反映されるようにします。
docker compose up --force-recreate
コンテナを起動する際に、--force-recreate
オプションを付けることで、既存のコンテナを無視して新しいコンテナを作成します。これは、イメージは新しくビルドされているものの、変更がコンテナに反映されないという問題を解決します。
参考
この手順を試す際に参考にした情報源は以下の通りです。
- https://qiita.com/subretu/items/5857628534b53f29f5a3
- https://qiita.com/vanshi/items/713d63e81331ded1930b
これらの手順を実行することで、Docker利用時にアプリケーションのコードを変更した際の問題を解決できるはずです。何か問題が発生した場合は、上記の参考リンクも併せて確認してみてください。