1. ホーム
  2. docker

[解決済み] docker-composeで既存のイメージを更新する方法は?

2022-03-04 22:59:51

質問

複数のマイクロサービスを持っており、開発用のデプロイメントにdocker-composeを使用しています。マイクロサービスのコードベースに何らかの変更があった場合、私はそれらを再デプロイするためにciジョブをトリガしています。私はこれを行うために以下のスクリプトを持っています。しかし、毎回、私はゼロからすべてのイメージを構築し、それらを実行する必要があります。このすべての操作の後、私は anonymous の画像が表示されます。そこで、最後のスクリプトでそれらを削除しています。このプロセスをより実用的にするために、何か提案はありますか?新しい変更で削除することなく、既存の画像を更新する方法はありますか?

- docker-compose build
- docker-compose down
- docker-compose up -d --force-recreate
- docker rmi $(docker images -f "dangling=true" -q) -f

追加情報: 私は gitlab-ci

解決方法は?

Dockerコンテナはエフェメラル(一時的)であるように設計されています。既存のコンテナを更新するには、古いコンテナを削除して、新しいコンテナを起動します。 したがって、あなたが従っているプロセスは正しいものです。

コマンドは以下のように簡略化することができます。

docker-compose up --force-recreate --build -d
docker image prune -f