は、私は次のシナリオを持っている:docker pushとdocker pullで並行性を管理するにはどうすればいいですか?
- プライベートレジストリから
docker pull
画像の最後のバージョンを実行しているdaemon_pulling。- など。
docker pull localhost:5000/myimage:v1
#1、SHAまたはイメージID:1234
- など。
- daemon_pushingが画像の最後のバージョンの
docker push
実行します。- など。
docker commit container_stable localhost:5000/myimage:v1 && docker push localhost:5000/myimage:v1
#舎や画像ID:6789
- など。
コードは、コンテナに基づいてイメージを展開するために正常に動作します!
dameon_pushing
(SHAまたは画像ID:6789)のときに問題がある:ときドッカープルプッシュ(6789)が終了していないので、同時に実行しdaemon_pulling
(1234 SHAまたは画像ID)を実行しています(1234)が使用され、ローカルの変更(6789!= 1234)を検出し、イメージ(1234)を再度ダウンロードしようとしましたが、最後の安定したイメージが押しています(6789)...
進行中のプルには影響を与えずにプッシュし、逆も同様である。
この並行性を管理するより良い方法はありますか?
ピボットとして別のDockerイメージ名を使用してレジストリサーバー上で直接名前を変更しようとしましたが、リモートで名前を変更する方法が見つかりませんでした。
このセットアップ/ワークフローで解決しようとしている問題は何ですか? – jonatan
@jonatan私たちは、ブランチ・ステイブルとプル・リクエストのブランチの変化を検出するCIを持っています。プル・リクエストのビルドでは 'docker pull stable'が使用され、安定ブランチでは' docker push'が使用されます。 – moylop260