Azure AppService несколько раз не удается извлечь образ docker из реестра контейнеров Azure

#azure #docker

#azure #docker

Вопрос:

Со вчерашнего дня у меня проблема со службой приложений Azure. Я развертываю новую среду с использованием Terraform

 resource "azurerm_app_service" "app" {
    name                    = "awake-kingfish"
    location                = azurerm_resource_group.app_group.location
    resource_group_name     = azurerm_resource_group.app_group.name
    app_service_plan_id     = azurerm_app_service_plan.service_plan.id
    https_only              = true
    client_affinity_enabled = false
    tags                    = local.tags
    app_settings            = {
        "DOCKER_REGISTRY_SERVER_USERNAME"         = var.docker_username
        "DOCKER_REGISTRY_SERVER_URL"              = var.docker_url
        "DOCKER_REGISTRY_SERVER_PASSWORD"         = var.docker_password
    }
    site_config {
        always_on           = true
        linux_fx_version    = "DOCKER|${var.docker_image}:${var.tag}"
    }
}
  

Переменные docker_username , docker_url , docker_password docker_image и tag поступают из конвейера CI / CD и на 100% корректны (тот же конвейер создает этот образ и отправляет его в реестр контейнеров Azure). При запуске службы приложений 4 раза не удается загрузить изображение, но затем оно извлекает его без каких-либо проблем или каких-либо действий с моей стороны. Вот журнал docker из службы приложений:

 2020-08-13T15:49:11.472Z INFO  - Pulling image from Docker hub: ****.azurecr.io/****:9dd776f05efd0a7ae981446c5e06d45c5c756df9
2020-08-13T15:49:11.682Z ERROR - DockerApiException: Docker API responded with status code=InternalServerError, response={"message":"Get https://****.azurecr.io/v2/****/manifests/9dd776f05efd0a7ae981446c5e06d45c5c756df9: unauthorized: authentication required, visit https://aka.ms/acr/authorization for more information."}

2020-08-13T15:49:11.685Z ERROR - Image pull failed: Verify docker image configuration and credentials (if using private repository)
2020-08-13T15:49:11.686Z INFO  - Stopping site awake-kingfish because it failed during startup.
2020-08-13T15:49:13.428Z INFO  - Pulling image from Docker hub: ****.azurecr.io/****:9dd776f05efd0a7ae981446c5e06d45c5c756df9
2020-08-13T15:49:13.611Z ERROR - DockerApiException: Docker API responded with status code=InternalServerError, response={"message":"Get https://****.azurecr.io/v2/****/manifests/9dd776f05efd0a7ae981446c5e06d45c5c756df9: unauthorized: authentication required, visit https://aka.ms/acr/authorization for more information."}

2020-08-13T15:49:13.613Z ERROR - Image pull failed: Verify docker image configuration and credentials (if using private repository)
2020-08-13T15:49:13.615Z INFO  - Stopping site awake-kingfish because it failed during startup.
2020-08-13T15:49:17.655Z INFO  - Pulling image from Docker hub: ****.azurecr.io/****:9dd776f05efd0a7ae981446c5e06d45c5c756df9
2020-08-13T15:49:17.851Z ERROR - DockerApiException: Docker API responded with status code=InternalServerError, response={"message":"Get https://****.azurecr.io/v2/****/manifests/9dd776f05efd0a7ae981446c5e06d45c5c756df9: unauthorized: authentication required, visit https://aka.ms/acr/authorization for more information."}

2020-08-13T15:49:17.853Z ERROR - Image pull failed: Verify docker image configuration and credentials (if using private repository)
2020-08-13T15:49:17.854Z INFO  - Stopping site awake-kingfish because it failed during startup.
2020-08-13T15:49:20.549Z INFO  - Pulling image from Docker hub: ****.azurecr.io/****:9dd776f05efd0a7ae981446c5e06d45c5c756df9
2020-08-13T15:49:20.736Z ERROR - DockerApiException: Docker API responded with status code=InternalServerError, response={"message":"Get https://****.azurecr.io/v2/****/manifests/9dd776f05efd0a7ae981446c5e06d45c5c756df9: unauthorized: authentication required, visit https://aka.ms/acr/authorization for more information."}

2020-08-13T15:49:20.745Z ERROR - Image pull failed: Verify docker image configuration and credentials (if using private repository)
2020-08-13T15:49:20.746Z INFO  - Stopping site awake-kingfish because it failed during startup.
2020-08-13T15:54:54.181Z INFO  - Pulling image: ****.azurecr.io/****:9dd776f05efd0a7ae981446c5e06d45c5c756df9
2020-08-13T15:54:55.076Z INFO  - 9dd776f05efd0a7ae981446c5e06d45c5c756df9 Pulling from ****
2020-08-13T15:54:55.084Z INFO  - cbdbe7a5bc2a Pulling fs layer
// ...
2020-08-13T15:55:48.435Z INFO  - 7715080b9d20 Extracting 19MB / 19MB
2020-08-13T15:56:17.866Z INFO  - 7715080b9d20 Pull complete
2020-08-13T15:56:17.970Z INFO  -  Digest: sha256:8a2da38f410b91b821ccf2ff2ccdfba12999ea10dc2aa5a60741f3609251cfc5
2020-08-13T15:56:18.067Z INFO  -  Status: Downloaded newer image for ****.azurecr.io/****:9dd776f05efd0a7ae981446c5e06d45c5c756df9
2020-08-13T15:56:18.093Z INFO  - Pull Image successful, Time taken: 1 Minutes and 23 Seconds
2020-08-13T15:56:18.116Z INFO  - Starting container for site
2020-08-13T15:56:18.116Z INFO  - docker run -d -p 1813:80 --name awake-kingfish_0_39ad6980 -e PORT=80 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=false -e WEBSITES_PORT=80 -e WEBSITE_SITE_NAME=awake-kingfish -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=awake-kingfish.azurewebsites.net -e WEBSITE_INSTANCE_ID=c4a671a5f8662a541a877e364dbc007723397b4ed45078d3ae1254f25f96e556 ****.azurecr.io/****:9dd776f05efd0a7ae981446c5e06d45c5c756df9  

2020-08-13T15:56:18.116Z INFO  - Logging is not enabled for this container.
Please use https://aka.ms/linux-diagnostics to enable logging to see container logs here.
2020-08-13T15:56:52.006Z INFO  - Initiating warmup request to container awake-kingfish_0_39ad6980 for site awake-kingfish
2020-08-13T15:56:53.047Z INFO  - Container awake-kingfish_0_39ad6980 for site awake-kingfish initialized successfully and is ready to serve requests.
  

Это огромная проблема, потому что это делает тесты E2E в конвейере бесполезными, поскольку они всегда будут завершаться неудачей. Примерно в прошлом месяце с этой настройкой все работало нормально.

Комментарии:

1. если вы утверждаете, что раньше он работал нормально, а сейчас больше не работает, вам следует обратиться в службу поддержки Azure

2. Служба поддержки Azure направила меня сюда, но, думаю, мне нужно будет заплатить дополнительные 29 долларов.

3. Если вы можете доказать им (с помощью журналов и т.д.), Что раньше это работало нормально, тогда я хотел бы подчеркнуть вместе с ними, что это должно быть охвачено стандартной поддержкой

4. Стандартная поддержка охватывает только проблемы с выставлением счетов / квотами, любые технические вопросы требуют платной поддержки. Я также не могу опубликовать вопрос на форумах MSN, потому что после отправки он выдает отказ в доступе.