Azure 容器应用允许使用 GitHub Actions 将
修订版本
发布到容器应用。 将提交推送到 GitHub 存储库时,会触发一个工作流,从而更新容器注册表中的容器映像。 Azure 容器应用基于更新的容器映像创建新修订版。
向存储库中的特定分支提交会触发 GitHub Actions 工作流。 创建工作流时,决定触发工作流的分支。
本文介绍如何创建完全可自定义的工作流。 若要使用 Azure CLI 生成初学者 GitHub Actions 工作流,请参阅
使用 Azure CLI 生成 GitHub Actions 工作流
。
Azure 容器应用 GitHub 操作
若要生成和部署容器应用,请将
azure/container-apps-deploy-action
操作添加到 GitHub Actions 工作流中。
此操作支持以下方案:
从 Dockerfile 生成并部署到容器应用
在没有 Dockerfile 的情况下从源代码生成并部署到容器应用。 支持的语言包括 .NET、Node.js、PHP、Python 和 Ruby
将现有容器映像部署到容器应用
下面是使用该操作的一些常见方案。 有关详细信息,请参阅
操作的 GitHub 市场页
。
生成并部署到容器应用
以下代码片段演示如何从源代码生成容器映像并将其部署到容器应用。
steps:
- name: Log in to Azure
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Build and deploy Container App
uses: azure/container-apps-deploy-action@v1
with:
appSourcePath: ${{ github.workspace }}/src
acrName: myregistry
containerAppName: my-container-app
resourceGroup: my-rg
该操作使用 appSourcePath
中的 Dockerfile 生成容器映像。 如果找不到 Dockerfile,该操作将尝试从 appSourcePath
中的源代码生成容器映像。
将现有容器映像部署到容器应用
以下代码片段演示如何将现有容器映像部署到容器应用。
steps:
- name: Log in to Azure
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Build and deploy Container App
uses: azure/container-apps-deploy-action@v1
with:
acrName: myregistry
containerAppName: my-container-app
resourceGroup: my-rg
imageToDeploy: myregistry.azurecr.io/app:${{ github.sha }}
如果你在单独的步骤中生成容器映像,请确保使用提交 SHA 等唯一标记,而不要使用类似于 latest
的稳定标记。 有关详细信息,请参阅映像标记最佳做法。
使用 Azure 容器注册表进行身份验证
Azure 容器应用操作需要向 Azure 容器注册表进行身份验证才能推送容器映像。 容器应用也需要向 Azure 容器注册表进行身份验证才能拉取容器映像。
要推送映像,操作将使用提供给 azure/login
操作的凭据自动通过 acrName
中指定的容器注册表进行身份验证。
为了拉取映像,Azure 容器应用将使用托管标识(建议)或管理员凭据向 Azure 容器注册表进行身份验证。 若要使用托管标识,必须将操作所部署的容器应用程序配置为使用托管标识。 若要使用注册表的管理员凭据进行身份验证,请设置操作的 acrUsername
和 acrPassword
输入。
可以执行以下步骤来配置 GitHub Actions 工作流以部署到 Azure 容器应用。
为应用创建 GitHub 存储库
创建启用了托管标识的容器应用
将 Azure 容器注册表的 AcrPull
角色分配到容器应用的托管标识
在 GitHub 存储库中配置机密
创建 GitHub Actions 工作流
Azure 帐户
如果你没有帐户,请免费创建一个。 需要拥有 Azure 订阅的“参与者”或“所有者”权限才能继续操作。 有关详细信息,请参阅使用 Azure 门户分配 Azure 角色。
GitHub 帐户
免费注册。
Azure CLI
安装 Azure CLI。
创建 GitHub 存储库并克隆源代码
在创建工作流之前,应用的源代码必须在 GitHub 存储库中。
使用 Azure CLI 登录 Azure。
az login
接下来,安装适用于 CLI 的最新 Azure 容器应用扩展。
az extension add --name containerapp --upgrade
如果没有自己的 GitHub 存储库,请按照示例创建一个。
导航到以下位置以创建新存储库: