私のプロジェクトでは、お互いに頼っている多くのマイクロサービスがあります。私はDocker Composeを使用してすべてを正しい順序で起動しています。作成した追加のインスタンスに最新のイメージを使用するには、どのようにして "ドッカー作成スケール"を取得できますか?
開発中に、コンテナの新しいコードを書き込むときに、コンテナを再起動して新しいコードを試す必要があります。正常に動作します
docker-compose down && docker-compose up -d
を、しかし〜とるまで再びライブ環境のためにあまりにも長くなり、20秒を、下にすべてを持って来ると:これまでのところ私は単にこのように、全部の再起動を使用してきました。私はマイクロサービスを中断することなく個別に再起動できるように、さまざまな戦略を検討しています。
私の最初のアプローチは、1つのインスタンスから2つに再起動するサービスの規模を拡大することです。私はその後、新しいインスタンスを指すようにプログラムでリバースプロキシ(Traefik)をリセットし、それが幸せなときには、古いものに私はdocker stop
を付けます。
私のスケールコマンドは、Compose 1.8.0を使用しているので、古いバラエティです。それは次のようになります。
docker-compose scale missive-storage-backend=2
唯一の問題は、新しいイメージがある場合は、ドッカー作曲はそれを使用しないことである - それは頑固に、すでに実行中のインスタンスと同一のハッシュを使用しています。私はdocker-compose scale --help
をチェックしており、そこには新しいイメージの使用を強制することに関して何もありません。
は今、私は普通docker run
使用することができますが、その後、私は私が私のdocker-compose.yml
で、このサービスのために設定したすべてのオプションを複製する必要があるだろう、と何かが作曲の外で実行する場合、私は知りませんファイルはComposeアプリケーションの一部として理解されます(手動で起動したにもかかわらずdocker-compose down
で停止するなど)。
Docker Composeのそれ以降のバージョンでは、スケール機能(it has been merged with up
anyway)でさらに多くのオプションがある可能性があります。
この機能を使用する最も簡単な方法は何ですか。
(別名:綿密な再起動や他の魔術を行うための無数のオーケストレーションツールがあり、時間があれば確かに底なしの穴を探索することに感謝しています。いくつかのデプロイメントタスクはより早い勝利です。)