この記事の最終更新日: 2025年4月26日
Docker Composeを使用して開発や検証環境を構築していると、Dockerのキャッシュが原因で最新のコードや設定変更が反映されないことがあります。この記事では、キャッシュを無効にしてDockerイメージを再ビルドし、常に最新状態でサービスを起動する方法をわかりやすく解説します。

なぜキャッシュを無効にする必要があるのか?
Dockerは高速なビルドを実現するためにキャッシュを活用しますが、以下のようなケースではキャッシュが不都合になることがあります。
Dockerfile
の変更が反映されない- アプリケーションの依存関係が更新されている
- ローカル環境で「クリーンな状態」を再現したい
こういった場合には、Dockerのキャッシュを無効にしてビルドを行うのが有効です。
手順:キャッシュを無効にしてサービスを起動する
以下の手順で、キャッシュを無効にしてサービスを立ち上げます。
1. docker-compose.ymlがあるディレクトリに移動
cd /path/to/your/project
2. キャッシュを無効にしてビルドする
docker-compose build --no-cache
--no-cache
オプションを指定することで、Dockerはキャッシュを利用せず、すべてのステップを一からビルドします。
3. サービスを起動する
docker-compose up
build
の後にup
を行うことで、キャッシュを使わずに構築されたイメージを使ってサービスが起動します。
よくある注意点とTips
--no-cache
はビルド時のみ有効:up
時に指定しても効果はありません。必ずbuild
コマンドと併用しましょう。- 再ビルドの時間が長くなる:キャッシュを使わないため、毎回すべてのステップが実行されます。
- 開発中のみ使うのが基本:本番環境では通常キャッシュを活用した方が効率的です。
まとめ
Docker Composeでサービスを起動する際に、--no-cache
オプションを使用することで、常に最新状態でビルドされた環境を構築できます。特にアプリケーションの挙動に違和感があるときや、依存関係に変更を加えたときなど、キャッシュの影響を排除したい場合に有効な手段です。
Docker-composeを使用してキャッシュを無効にしてサービスを立ち上げるには、以下の手順に従ってください。
- docker-compose.ymlがあるディレクトリに移動します。
- 以下のコマンドを実行します。このコマンドは、ビルドプロセス中のキャッシュを無効にします。
docker-compose.ymlがあるディレクトリに移動
cd ./対象のディレクトリ
キャッシュ無効のコマンドを実行
以下のコマンドを実行します。このコマンドは、ビルドプロセス中のキャッシュを無効にします。
docker-compose build --no-cache
キャッシュを無効にした状態で、サービスを立ち上げる
docker-compose up
上記のコマンドは、Dockerがビルドプロセスでキャッシュを使用するのを防ぎます。これにより、新たにイメージをビルドする際に、以前のビルドからのキャッシュが使用されず、全て新しくビルドされます。この手法は、特定の変更が正確に反映されることを保証するために用いられます。

大阪のエンジニアが書いているブログ。
コメント