我有一个要在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 \
...
...
...
是否有一种方法可以在单个文件中包含多个容器?至少标记一部分并推送图像。
答案 0 :(得分: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
答案 1 :(得分:1)
您可以使用docker任务来实现(kinda),在gui中也可以实现
- task: Docker@2
displayName: Push image
inputs:
containerRegistry: |
$(dockerHub)
repository: $(imageName)
command: push
tags: |
test1
test2
etc
我不认为等效的方法可以用于构建,因此您必须使用带有循环的脚本或要构建的多个构建步骤