首页 > 解决方案 > 如何将多个图像推送到 Azure 注册表

问题描述

我有一个要在 azure 上部署的多容器应用程序,以创建我正在使用的 docker compose 文件的图像,类似于这个:

version: '3.3'

services:

  app1:
    image: app1
    container_name: "app1"
    ports:
      - "5000:5000"
    restart: always
    build:
      context: ./app1
      dockerfile: Dockerfile

  app2:
    image: app2
    container_name: "app2"
    ports:
      - "5000:5000"
    restart: always
    build:
      context: ./app2
      dockerfile: Dockerfile

这有助于我自动化该过程,问题是在此之后的每个其他步骤都需要对每个图像单独使用命令,在管道中我有以下步骤:

1)标记图像:

sudo docker tag app1 services.azurecr.io/samples/app1

2) 将镜像推送到 Azure 注册表:

sudo docker push services.azurecr.io/samples/app1

3)部署容器:

az container create \
    --name XXX
    --ports  5000 5100 \
    --memory 3 \
    --cpu 1 \
    --azure-file-volume-share-name legaldocuments \
    --azure-file-volume-mount-path /app/data \
    ...
    ...
    ...

有没有办法将它包含在多个容器的单个文件中?至少标签的一部分并推送图像。

标签: azuredocker

解决方案


您可以使用 docker 任务来实现(有点),在 gui 中也可以

- task: Docker@2
  displayName: Push image
  inputs:
    containerRegistry: |
      $(dockerHub)
    repository: $(imageName)
    command: push
    tags: |
      test1
      test2
      etc

我不认为等效的构建工作,所以你必须有一个带有循环的脚本或多个构建步骤来构建


推荐阅读