gpt4 book ai didi

azure - 如何使用 Azure DevOps Pipeline 将 Docker Hub 与 Azure 容器应用程序集成

转载 作者:行者123 更新时间:2023-12-03 03:23:49 36 4
gpt4 key购买 nike

在学习 Azure 时,我决定将我的个人网站从其他 VPS 提供商迁移到 Azure。我选择了 Azure 容器应用程序,因为它是无服务器解决方案,每月提供一些免费资源。因为我的网站流量不高,所以对我来说应该没问题。我已经设置了使用 Azure DevOps 进行 git repo 的持续部署解决方案,以及使用 Azure 容器注册表 (ACR) 来存储图像的 CI/CD 管道。不幸的是,ACR 每天都会收取一些费用。我想改用 Docker Hub。

我还浏览了 MS 文档和其他站点,我发现每个 Azure DevOps Pipeline 任务和/或“az containerapp”Azure CLI 命令都需要引用 ACR,没有使用其他图像存储库提供程序的选项。不过,我们可以在 Azure Portal 用户界面中设置 Docker Hub 存储库,所以它应该是可以实现的。您是否知道实现这一目标的方法?

最佳答案

我们可以使用以下命令将 Docker 镜像从 Docker Hub 部署到 Azure 容器应用程序。

az containerapp up -n $(containerapp-name) -g $(resourcegroup-name) --image $(dockerusername)/$(imagename):latest --environment $(environment-name) --ingress external --target-port 80 --registry-username $(dockerusername) --registry-password $(docker-registry-password) --registry-server hub.docker.com --query properties.configuration.ingress.fqdn

我们可以在 Azure 中设置 CICD 管道,如下所示。

首先,为docker创建一个服务,如下所示。 enter image description here

接下来,使用 docker 任务和 azure cli 任务创建管道,如下所示。每当主分支中有新的提交时,它将构建镜像,推送到 docker hub 并部署到 azure 容器应用程序。

trigger:
- main

pool:
vmImage: ubuntu-latest

variables:
containerapp-name: livingbeingcontainer
resourcegroup-name: rg
dockerusername: jhsdgf
imagename: cimg
environment-name: livingbeingcontainer-env

steps:
- task: Docker@2
displayName: buildAndPush
inputs:
containerRegistry: 'spn-docker-hub-registry'
repository: 'jhsdgf/cimg'
command: 'buildAndPush'
Dockerfile: 'Dockerfile'
tags: |
$(Build.BuildId)
latest

- task: AzureCLI@2
displayName: 'Azure CLI '
inputs:
azureSubscription: 'spn-04-29-23-azure-cxp'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az config set extension.use_dynamic_install=yes_without_prompt

az containerapp up -n $(containerapp-name) -g $(resourcegroup-name) --image $(dockerusername)/$(imagename):latest --environment $(environment-name) --ingress external --target-port 80 --registry-username $(dockerusername) --registry-password $(docker-registry-password) --registry-server hub.docker.com --query properties.configuration.ingress.fqdn

完成后验证管道输出。 enter image description here

接下来浏览 Azure 容器应用以查看更改。

enter image description here

关于azure - 如何使用 Azure DevOps Pipeline 将 Docker Hub 与 Azure 容器应用程序集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76110956/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com