用于容器的 Azure Web 应用程序忽略 Web 挂钩发送的 docker 标记
Azure web apps for containers ignores the docker tag sent by web hooks
所以我正在尝试为我的网络应用设置持续部署。 Web 应用配置为使用来自 Azure 容器注册表的 docker 图像:
它在 Azure 容器注册表中创建了一个 webhook,我将其更新为针对任何图像标记触发:
每当我将新图像推送到注册表时,webhook 都会成功触发。但是,Web 应用程序会忽略 webhook 发送的标签名称,并始终使用 latest
部署图像,因为它是在 Web 应用程序配置中定义的,无法更改。
webhook 的请求负载:
{
"id": "6be524c6-xxxx-xxxx-xxxx-afb4fa79144b",
"timestamp": "2019-10-11T05:00:56.2452112Z",
"action": "push",
"target": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 1153,
"digest": "sha256:8076c2616d4a629062aede0b7d2aa0f04d293126e55c7778149b9b8db3111382",
"length": 1153,
"repository": "platform-api",
"tag": "cf2ff96"
},
"request": {
"id": "bf18fce3-xxxx-xxxx-xxxx-aceebbffcfd0",
"host": "xxxx.azurecr.io",
"method": "PUT",
"useragent": "docker/18.09.3 go/go1.10.8 git-commit/774a1f4 kernel/4.15.0-1027-gcp os/linux arch/amd64 UpstreamClient(Docker-Client/18.09.3 \(linux\))"
}
}
回复:
{"OperationId":"690c7748-xxxx-xxxx-xxxx-31f5533e4067","TrackingUrl":"https://xxxx-platform-api.scm.azurewebsites.net/api/logstream?filter=op:690c7748-xxxx-xxxx-xxxx-31f5533e4067,volatile:false"}
容器的日志流:
2019-10-10 22:35:08.451 INFO - a5fd76166a97 Extracting 2KB / 2KB
2019-10-10 22:35:08.939 INFO - a5fd76166a97 Pull complete
2019-10-10 22:35:08.983 INFO - Digest: sha256:595cb52395b914b82133d67f5e5424075f6325dc4c8be5673db59e09b279c78d
2019-10-10 22:35:09.027 INFO - Status: Downloaded newer image for xxxx.azurecr.io/platform-api:latest
2019-10-10 22:35:09.082 INFO - Pull Image successful, Time taken: 0 Minutes and 6 Seconds
2019-10-10 22:35:09.172 INFO - Starting container for site
2019-10-10 22:35:09.173 INFO - docker run -d -p 9758:8080 --name xxxx-platform-api_0_7d8217a9 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=false -e WEBSITE_SITE_NAME=xxxx-platform-api -e WEBSITE_AUTH_ENABLED=False -e PORT=8080 -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=xxxx-platform-api.azurewebsites.net -e WEBSITE_INSTANCE_ID=a76a50ba664d5f979a92b87fa96814a39a02ad08ea740b7ba12f9ace3807d7f7 -e HTTP_LOGGING_ENABLED=1 xxxx.azurecr.io/platform-api:latest
2019-10-10 22:35:14.039 INFO - Initiating warmup request to container xxxx-platform-api_0_7d8217a9 for site xxxx-platform-api
2019-10-10 22:35:16.167 INFO - Container xxxx-platform-api_0_7d8217a9 for site xxxx-platform-api initialized successfully and is ready to serve requests.
似乎没有办法强制web应用程序部署web hook发送的标签名称
其实你没看错。 Web App for Container 中的继续部署仅适用于您部署的图像。
您可以为更新图像的操作创建 Webhook,它将按您的需要工作。但是网络应用程序只会在使用的图像发生变化时更新。这就是持续部署的作用。
所以我正在尝试为我的网络应用设置持续部署。 Web 应用配置为使用来自 Azure 容器注册表的 docker 图像:
它在 Azure 容器注册表中创建了一个 webhook,我将其更新为针对任何图像标记触发:
每当我将新图像推送到注册表时,webhook 都会成功触发。但是,Web 应用程序会忽略 webhook 发送的标签名称,并始终使用 latest
部署图像,因为它是在 Web 应用程序配置中定义的,无法更改。
webhook 的请求负载:
{
"id": "6be524c6-xxxx-xxxx-xxxx-afb4fa79144b",
"timestamp": "2019-10-11T05:00:56.2452112Z",
"action": "push",
"target": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 1153,
"digest": "sha256:8076c2616d4a629062aede0b7d2aa0f04d293126e55c7778149b9b8db3111382",
"length": 1153,
"repository": "platform-api",
"tag": "cf2ff96"
},
"request": {
"id": "bf18fce3-xxxx-xxxx-xxxx-aceebbffcfd0",
"host": "xxxx.azurecr.io",
"method": "PUT",
"useragent": "docker/18.09.3 go/go1.10.8 git-commit/774a1f4 kernel/4.15.0-1027-gcp os/linux arch/amd64 UpstreamClient(Docker-Client/18.09.3 \(linux\))"
}
}
回复:
{"OperationId":"690c7748-xxxx-xxxx-xxxx-31f5533e4067","TrackingUrl":"https://xxxx-platform-api.scm.azurewebsites.net/api/logstream?filter=op:690c7748-xxxx-xxxx-xxxx-31f5533e4067,volatile:false"}
容器的日志流:
2019-10-10 22:35:08.451 INFO - a5fd76166a97 Extracting 2KB / 2KB
2019-10-10 22:35:08.939 INFO - a5fd76166a97 Pull complete
2019-10-10 22:35:08.983 INFO - Digest: sha256:595cb52395b914b82133d67f5e5424075f6325dc4c8be5673db59e09b279c78d
2019-10-10 22:35:09.027 INFO - Status: Downloaded newer image for xxxx.azurecr.io/platform-api:latest
2019-10-10 22:35:09.082 INFO - Pull Image successful, Time taken: 0 Minutes and 6 Seconds
2019-10-10 22:35:09.172 INFO - Starting container for site
2019-10-10 22:35:09.173 INFO - docker run -d -p 9758:8080 --name xxxx-platform-api_0_7d8217a9 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=false -e WEBSITE_SITE_NAME=xxxx-platform-api -e WEBSITE_AUTH_ENABLED=False -e PORT=8080 -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=xxxx-platform-api.azurewebsites.net -e WEBSITE_INSTANCE_ID=a76a50ba664d5f979a92b87fa96814a39a02ad08ea740b7ba12f9ace3807d7f7 -e HTTP_LOGGING_ENABLED=1 xxxx.azurecr.io/platform-api:latest
2019-10-10 22:35:14.039 INFO - Initiating warmup request to container xxxx-platform-api_0_7d8217a9 for site xxxx-platform-api
2019-10-10 22:35:16.167 INFO - Container xxxx-platform-api_0_7d8217a9 for site xxxx-platform-api initialized successfully and is ready to serve requests.
似乎没有办法强制web应用程序部署web hook发送的标签名称
其实你没看错。 Web App for Container 中的继续部署仅适用于您部署的图像。
您可以为更新图像的操作创建 Webhook,它将按您的需要工作。但是网络应用程序只会在使用的图像发生变化时更新。这就是持续部署的作用。