Раньше это работало, но по какой-то причине Azure ACI теперь не может получить образ из общедоступного DockerHub.
Я попытался развернуть ACI в двух подписках (одна полностью новая), где я, соответственно, «щелкнул мышью по развертыванию» и выполнил развертывание terraform. (Просто чтобы исключить, что в моей подписке была странная конфигурация сети)
Ошибка, которую я получаю, не является сверхсложной и одинакова независимо от того, нажимаю я или использую tf:
выполнение ContainerGroupsCreateOrUpdate: неожиданный статус 409 (конфликт 409) с ошибкой: RegistryErrorResponse: из реестра докеров «index.docker.io» получен ответ об ошибке. Пожалуйста, повторите попытку позже.
Мой терраформ (который раньше работал) выглядит следующим образом:
resource "azurerm_container_group" "forwarder" {
name = "${var.app_name}-forwarder-${var.environment}"
resource_group_name = var.rg-name
location = var.region
ip_address_type = "Private"
os_type = "Linux"
subnet_ids = [var.private-subnet.id]
restart_policy = "Always"
container {
name = "${var.app_name}-forwarder-${var.environment}"
image = "nginx" //Changing image doesn't make a difference
cpu = 0.5
memory = 1
readiness_probe {
...
}
liveness_probe {
...
}
ports {
port = local.forwarder_local_port
protocol = "TCP"
}
}
exposed_port {
port = local.forwarder_local_port
protocol = "TCP"
}
diagnostics {
log_analytics {
...
}
}
}
Группы безопасности сети открыты. Также стоит отметить, что попытка развернуть общедоступный экземпляр ACI также сталкивается с той же проблемой.
Вручную вытащить изображение т. е. docker image pull nginx
не проблема.
Регион - Запад ЕС
Проблема в том, что в dockerhub реализовано ограничение скорости. См.: https://medium.com/@alaa.barqawi/docker-rate-limit-with-azure-container-instance-and-aks-4449cede66dd
На самом деле не помогает то, что ошибка, возвращаемая dockerhub, совершенно неинформативна о том, что на самом деле происходит. Хорошая работа по нарушению развертывания контейнеров...
Совет: либо используйте платную учетную запись dockerhub, либо пометьте контейнер и отправьте его в свой собственный частный репозиторий контейнеров (или репозиторий контейнеров GitHub и т. д.). См.: Как отправить образ Docker в частный репозиторий
Стержень