我是docker的新手,我正在尝试更新azure网站上的现有Web服务。构建图像后,这就是我所做的:
docker login <regname>.azurecr.io # Successfully logged in
docker tag <myimage> <regname>.azurecr.io/<servicename>
docker push <regname>.azurecr.io/<servicename>
这就是我得到的:
C:\Users\user> docker push <regname>.azurecr.io/<servicename>
The push refers to repository [<regname>.azurecr.io/<servicename>]
8338876046a2: Preparing
9b4cb369a379: Preparing
769a276cd781: Preparing
486305c59459: Preparing
c36e2873b733: Preparing
130ae36f8cc8: Preparing
bc6b4902b79e: Preparing
f3d44e887388: Preparing
4a39ef7ed1bb: Preparing
4c5aab3548b9: Preparing
ec348085b0e6: Preparing
c2be8853e0b2: Preparing
0f1151f5fc99: Preparing
00399b079947: Preparing
c82d454eb914: Preparing
b25487d1db04: Preparing
e367fb455ccf: Preparing
bc6b4902b79e: Pushed
57df5852e66c: Layer already exists
d788ea03fce1: Layer already exists
1ffa9e6f04f1: Layer already exists
377e5b96eca6: Layer already exists
90dd0108373f: Layer already exists
eb8fe74986a4: Layer already exists
e2a005b711f9: Layer already exists
3a29b9e0627a: Layer already exists
ca4c28881d11: Layer already exists
33614d3265ba: Layer already exists
270f4d759cc3: Layer already exists
0fa80309f3d6: Layer already exists
4e1d0b4d1868: Layer already exists
910d7fd9e23e: Pushed
4230ff7f2288: Pushed
2c719774c1e1: Layer already exists
ec62f19bb3aa: Layer already exists
f94641f1fe1f: Layer already exists
latest: digest:
sha256:5d2729ae576349b158acc6c480acdde3899e2c6a9445966bb7e8d291677e11dd size: 7866
注意:“图层已存在”是我上次推送的结果。我不得不进行两次推送,因为它在某些层上不断重试,然后到达EOF并停止。因此,在第一次推送中,我推送了大多数层,然后在第二次推送中,首次推送了其余的层。问题出在这里吗?
我要推送的新图像与旧图像(它们都是Flask应用程序)完全不同。
完成上述操作后,我进入了Azure门户并重新启动了该资源的服务,但没有任何反应。天蓝色服务保持不变,并且未添加新功能。
我读过其他文章,指出问题出在标签名称上。我找不到解决此问题的方法,因为我想更新天蓝色注册表中的现有映像(这意味着标记名称会相同吗?)。
其他人是否遇到过此问题,或者对我做错了什么有想法?
答案 0 :(得分:1)
对于您的问题,您只需要通知Web App对其进行更新即可。然后,您需要在更新映像之前为Web应用程序创建Webhook。后续步骤中的描述here。有关更多详细信息,请参见Push an updated container image to a geo-replicated container registry for regional web app deployments。