Azure 容器实例无法使用 docker 组合部署提取 public docker 中心映像

Azure Container Instances unable to pull public docker hub images with docker compose deployment

我正在尝试使用 public Docker 中心图像和这两个教程 docker, youtube 将 docker 组合文件部署到 Azure 容器实例 (ACI)。但是,它一直说我无法拉取 public dockerhub 图像

containerinstance.ContainerGroupsClient#CreateOrUpdate: 
  Failure sending request: StatusCode=400 -- Original Error: Code="MultipleErrorsOccurred" 
  Message="Multiple error occurred: 
    'BadRequest':'InaccessibleImage':'The image 'selenium/standalone-firefox:latest' in container group 'test_ui_automation' is not accessible. Please check the image and registry credential.

进程本身应该是在 ACI 实例设置时进行的,因此不存在注册详细信息,图像在 docker 集线器上 public。

我已经登录到 Azure 和 Docker Hub。根据youtube教程,应该只是一个创建ACI实例的过程,然后运行 docker compose -f azure-testproject-docker.yaml -d.

azure-testproject-docker.yaml

version: '3.1'
services:
  testproject-agent:
    image: testproject/agent:latest
    container_name: testproject-agent
    depends_on:
      - chrome
      - firefox
    volumes:
      - mydata:/var/testproject/agent
    environment:
      TP_AGENT_ALIAS: "MY DOCKER AGENT"
      TP_API_KEY: "MY KEY"
      TP_JOB_PARAMS: '"jobParameters" : { "browsers": [ "chrome", "firefox" ] }'
      CHROME: "chrome:4444"
      FIREFOX: "firefox:4444"
  chrome:
    image: selenium/standalone-chrome:latest
    volumes:
      - mydata:/dev/shm
  firefox:
    image: selenium/standalone-firefox:latest
    volumes:
      - mydata:/dev/shm

volumes:
  mydata:
    driver: azure_file
    driver_opts:
      share_name: myfileshare
      storage_account_name: mystorageaccount

docker-compose 文件非常基础,只是使用了 TestProject 的默认 docker compose 文件。图片下载到本地 docker,但 azure 部分不起作用。

重点是仅使用 Docker Compose 文件进行部署,没有 Docker 文件,因为它仅使用 public docker 中心图像。

有没有人遇到过类似的问题?

解决方案

移除 container_name,因为 ACI

不支持

原来这个问题只是因为 container_name 不受支持。

根据 andriy-bilous 的评论

First you should look at supported ACI docker-compose features, as at least container_name is not supported. docs.docker.com/cloud/aci-compose-features – Andriy Bilous 17 hours ago

只需删除 container_name 行即可解决问题。