docker-compose up –force-recreate でコンテナを再作成してから起動する

docker-compose up でコンテナを再作成してから起動するには –force-recreate オプションを付けることで実現できます。

Docker

開発中に docker-compose build –no-cache でキャッシュを使わないでビルドしたら、念のため docker-compose up –force-recreate しておくと変更が反映されてないという問題が減るはずです。

docker-compose up のオプション

使い方: up [オプション] [サービス...]
 
オプション:
    -d                         デタッチド・モード: バックグラウンドでコンテナを実行し、新しいコンテナ名を表示
                               --abort-on-container-exit と同時に使えない
    --no-color                 白黒で画面に表示
    --no-deps                  リンクしたサービスを表示しない
    --force-recreate           設定やイメージに変更がなくても、コンテナを再作成する
                               --no-recreate と同時に使えません
    --no-recreate              コンテナが既に存在していれば、再作成しない
                               --force-recreate と同時に使えない
    --no-build                 イメージが見つからなくても構築しない
    --build                    コンテナを開始前にイメージを構築する
    --abort-on-container-exit  コンテナが1つでも停止したら全てのコンテナを停止
                               -d と同時に使えない
    -t, --timeout TIMEOUT      アタッチしている、あるいは既に実行中のコンテナを
                               停止する時のタイムアウト秒数を指定 (デフォルト:10 )
    --remove-orphans           Compose ファイルで定義されていないサービス用のコンテナを削除

もしも Compose で処理時、強制的に全てのコンテナを停止・再作成するには –force-recreate フラグを使います。

対象のコンテナ数が多いと、コンテナの再作成・起動に時間がかかるので docker-compose up –force-recreate targetContainerName のように特定のコンテナだけ再作成するというアプローチが時間短縮になりそうです。

参考情報