如何将多张图像推送到天蓝色注册表

问题描述 投票:0回答:2

[我有一个要在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)将图像推送到天蓝色注册表:

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 \
    ...
    ...
    ...

是否有一种方法可以在多个容器的单个文件中包含此文件?至少标记一部分并推送图像。

azure docker
2个回答
1
投票

要将多个映像推送到Azure容器注册表,需要使用注册表的loginServer名称对其进行标记。

遵循步骤

第1步:您需要在这些图像上附加标签,

docker tag azurecontainerservicepoc acrarampoc/azurecontainerservicepoc:dev

步骤2:将Docker映像推送到Azure容器注册表

docker push your_acr_name.azurecr.io/elasticsearch:6.2.4

然后为了推送多张图像,您可以使用Bash脚本尝试以下操作,

根据您的情况,可能是:

docker push --all-tags   your_acr_name.azurecr.io 

0
投票

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

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

我不认为等效的方法可用于构建,因此您必须具有循环的脚本或要构建的多个构建步骤

© www.soinside.com 2019 - 2024. All rights reserved.