複数のマイクロサービスがあり、開発デプロイメントに 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
ベストアンサー1
Docker コンテナは一時的なものとして設計されています。既存のコンテナを更新するには、古いコンテナを削除して新しいコンテナを起動します。したがって、従っているプロセスは正しいものです。
コマンドを次のように簡略化できます。
docker-compose pull
docker-compose up --force-recreate --build -d
docker image prune -f