注: GitHub 托管的运行器目前在 GitHub Enterprise Server 上不受支持。 您可以在 GitHub 公共路线图 上查看有关未来支持计划的更多信息。
简介
本指南说明如何使用 GitHub Actions 构建并部署 Php 项目到 Azure Kubernetes Service。
基本要求
在创建 GitHub Actions 工作流程之前,首先需要完成以下设置步骤:
-
创建目� � AKS 群集和 Azure 容器注册表 (ACR)。 更多信息请参阅 Azure 文档中的“快速入门:使用 Azure 门户部署 AKS 群集 - Azure Kubernetes Service”和“快速入门 - 在门户中创建注册表 - Azure 容器注册表”。
-
创建名为
AZURE_CREDENTIALS
的机密来存储 Azure 凭据。 有关如何查找此信息和构建密钥的详细信息,请参阅Azure/login
操作文档。
创建工作流程
完成先决条件后,可以继续创建工作流程。
以下示例工作流程演示在将代� �推送到存储库时,如何构建项目并将其部署到 Azure Kubernetes Service。
在工作流程 env
键下,更改以下值:
- 将
AZURE_CONTAINER_REGISTRY
更改为您的容器注册表的名称 - 将
PROJECT_NAME
更改为您的项目名称 - 将
Resources URCE_GROUP
更改为包含您的 AKS 集群的资源组 - 将
CLUSTER_NAME
更改为您的 AKS 集群名称
此工作流程对 azure/k8s-bake
操作使用 helm
渲染引擎。 如果要使用 helm
渲染引擎,请将 CHART_PATH
的值更改为 helm 文件的路径。 将 CHART_OVERRIDE_PATH
更改为覆盖文件路径数组。 如果使用其他渲染引擎,请更新发送到 azure/k8s-bake
操作的输入参数。
# 此工作流使用未经 GitHub 认证的操作。
# 它们由第三方提供,并受
# 单独的服务条款、隐私政策和支持
# 文档管理。
name: Build and deploy to Azure Kubernetes Service
env:
AZURE_CONTAINER_REGISTRY: MY_REGISTRY_NAME # set this to the name of your container registry
PROJECT_NAME: MY_PROJECT_NAME # set this to your project's name
RESOURCE_GROUP: MY_RESOURCE_GROUP # set this to the resource group containing your AKS cluster
CLUSTER_NAME: MY_CLUSTER_NAME # set this to the name of your AKS cluster
REGISTRY_URL: MY_REGISTRY_URL # set this to the URL of your registry
# If you bake using helm:
CHART_PATH: MY_HELM_FILE # set this to the path to your helm file
CHART_OVERRIDE_PATH: MY_OVERRIDE_FILES # set this to an array of override file paths
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Azure Login
uses: azure/login@89d153571fe9a34ed70fcf9f1d95ab8debea7a73
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Build image on ACR
uses: azure/CLI@7378ce2ca3c38b4b063feb7a4cbe384fef978055
with:
azcliversion: 2.29.1
inlineScript: |
az configure --defaults acr=${{ env.AZURE_CONTAINER_REGISTRY }}
az acr build -t -t ${{ env.REGISTRY_URL }}/${{ env.PROJECT_NAME }}:${{ github.sha }}
- name: Gets K8s context
uses: azure/aks-set-context@4e5aec273183a197b181314721843e047123d9fa
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
resource-group: ${{ env.RESOURCE_GROUP }}
cluster-name: ${{ env.CLUSTER_NAME }}
id: login
- name: Configure deployment
uses: azure/k8s-bake@773b6144a3732e3bf4c78b146a0bb9617b2e016b
with:
renderEngine: 'helm'
helmChart: ${{ env.CHART_PATH }}
overrideFiles: ${{ env.CHART_OVERRIDE_PATH }}
overrides: |
replicas:2
helm-version: 'latest'
id: bake
- name: Deploys application
- uses: Azure/k8s-deploy@c8fbd76ededaad2799c054a9fd5d0fa5d4e9aee4
with:
manifests: ${{ steps.bake.outputs.manifestsBundle }}
images: |
${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.PROJECT_NAME }}:${{ github.sha }}
imagepullsecrets: |
${{ env.PROJECT_NAME }}
其他资源
以下资源也可能有用:
- 有关原始入门工作流程,请参阅 GitHub Actions
starter-workflows
仓库中的azure-kubernetes-service.yml
。 - 用于此工作流程的操作是正式的 Azure
Azure/login
、Azure/aks-set-context
、Azure/CLI
、Azure/k8s-bake
和Azure/k8s-deploy
操作。 - 有关部署到 Azure 的 GitHub 操作工作流程的更多示例,请参阅 actions-workflow-samples 存储库。