azure - 如何将多个图像推送到 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 \
...
...
...
有没有办法将它包含在多个容器的单个文件中?至少标签的一部分并推送图像。
解决方案
您可以使用 docker 任务来实现(有点),在 gui 中也可以
- task: Docker@2
displayName: Push image
inputs:
containerRegistry: |
$(dockerHub)
repository: $(imageName)
command: push
tags: |
test1
test2
etc
我不认为等效的构建工作,所以你必须有一个带有循环的脚本或多个构建步骤来构建
推荐阅读
- javascript - 在同一次单击时按升序和降序对对象数组进行排序
- python - 如何使用 matplotlib 在一个栏中比较两个数据系列
- angular - 当我关闭对话框时复选框未选中 - 角度
- callback - 当调用 openssl 锁定回调时
- rust - 为什么子模块“找不到模块文件”?
- python - “对象不是无”是否与对象相同?
- javascript - Javascript正则表达式:想要排除所有大写的功能词
- ios - 如何识别 MKPointAnnotation 是否已在 Swift 中按下?
- java - 具有众多参数的黄瓜步骤
- python-3.x - Selenium 与 Firefox 67+ 中的代理