Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure Container Apps umožňuje použít GitHub Actions k publikování revizí do vaší aplikace kontejneru. Při odesílání potvrzení do úložiště GitHub se aktivuje pracovní postup, který aktualizuje image kontejneru v registru kontejneru. Azure Container Apps vytvoří novou revizi na základě aktualizované image kontejneru.
Pracovní postup GitHub Actions se spustí při provedení potvrzení do konkrétní větve ve vašem úložišti. Při vytváření pracovního postupu se rozhodnete, která větev pracovní postup aktivuje.
V tomto článku se dozvíte, jak vytvořit plně přizpůsobitelný pracovní postup. Pokud chcete vygenerovat úvodní pracovní postup GitHub Actions pomocí Azure CLI, přečtěte si téma Generování pracovního postupu GitHub Actions pomocí Azure CLI.
Akce GitHubu pro Azure Container Apps
Pokud chcete sestavit a nasadit aplikaci kontejneru, přidejte azure/container-apps-deploy-action akci do pracovního postupu GitHub Actions.
Akce podporuje následující scénáře:
- Sestavení ze souboru Dockerfile a nasazení do kontejnerových aplikací
- Sestavte ze zdrojového kódu bez souboru Dockerfile a nasaďte do Container Apps. Mezi podporované jazyky patří .NET, Java, Node.js, PHP a Python.
- Nasazení existující image kontejneru do Container Apps
Příklady použití
Tady jsou některé běžné scénáře použití operace. Další informace najdete na stránce GitHub Marketplace akce.
Sestavení a nasazení do kontejnerových aplikací
Následující fragment kódu ukazuje, jak sestavit image kontejneru ze zdrojového kódu a nasadit ji do Container Apps.
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
Akce používá k sestavení image kontejneru soubor Dockerfile appSourcePath . Pokud se nenajde žádný soubor Dockerfile, akce se pokusí sestavit image kontejneru ze zdrojového kódu v appSourcePathsouboru .
Nasazení existující image kontejneru do Container Apps
Následující fragment kódu ukazuje, jak nasadit existující image kontejneru do Container Apps.
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 }}
Důležité
Pokud vytváříte image kontejneru v samostatném kroku, ujistěte se, že používáte jedinečný tag, například SHA hash potvrzení, místo stabilního tagu, jako je latest. Další informace najdete v tématu Osvědčené postupy pro značkování obrázků.
Ověřování pomocí služby Azure Container Registry
Aby se image kontejneru odeslala, musí se akce Azure Container Apps ověřit ve službě Azure Container Registry. Aplikace kontejneru se také musí ověřit ve službě Azure Container Registry, aby si stáhla image kontejneru.
Pro nasazení image se akce automaticky autentizuje u registru kontejneru uvedeném v acrName s použitím přihlašovacích údajů poskytnutých pro danou azure/login akci.
Služba Azure Container Apps používá ke stažení obrazů pro ověřování v Azure Container Registry buď spravovanou identitu (doporučeno), nebo přihlašovací údaje správce. Pokud chcete použít spravovanou identitu, musí být aplikace kontejneru, na které se akce nasazuje, nakonfigurovaná tak, aby používala spravovanou identitu. Pokud se chcete ověřit pomocí přihlašovacích údajů správce registru, nastavte acrUsername akce a acrPassword vstupy.
Nasazení obrazů z registrů jiných než ACR
Kromě služby Azure Container Registry (ACR) služba Azure Container Apps podporuje image kontejnerů hostované v jiných registrech, jako je GitHub Container Registry (GHCR). Tato část ukazuje, jak nasadit kontejnerové image z GHCR, včetně veřejných a soukromých image.
Poznámka:
Při použití registru jiného typu než ACR, jako je GHCR, musíte aplikaci kontejneru nakonfigurovat tak, aby se ověřila v registru, i když je image veřejná.
Nasazení veřejné image z GHCR
Pokud je image kontejneru veřejná, můžete ji nasadit bez zadání přihlašovacích údajů pro ověřování. Následující příklad ukazuje, jak nasadit veřejnou image z GHCR pomocí akce nasazení.
Před spuštěním tohoto příkazu nahraďte <YOUR-GITHUB-USERNAME> skutečným uživatelským jménem GitHubu.
- name: Deploy public GHCR image to Container App
uses: azure/container-apps-deploy-action@v1
with:
containerAppName: my-container-app
resourceGroup: my-container-app-rg
imageToDeploy: ghcr.io/<YOUR-GITHUB-USERNAME>/myimage:latest
registryServer: ghcr.io
Před nasazením nakonfigurujte aplikaci kontejneru tak, aby načítá z GHCR:
az containerapp registry set \
--name my-container-app \
--resource-group my-container-app-rg \
--server ghcr.io
Nasazení privátní image z GHCR
Pokud je image soukromá, musíte v pracovním postupu GitHub Actions zadat ověřovací přihlašovací údaje. Použijte osobní přístupový token (PAT) GitHubu s oborem read:packages . Uložte token a uživatelské jméno jako tajné kódy v úložišti GitHub.
- name: Deploy private GHCR image to Container App
uses: azure/container-apps-deploy-action@v1
with:
containerAppName: my-container-app
resourceGroup: my-container-app-rg
imageToDeploy: ghcr.io/<YOUR-GITHUB-USERNAME>/myimage:${{ github.sha }}
registryServer: ghcr.io
registryUsername: ${{ secrets.GHCR_USERNAME }}
registryPassword: ${{ secrets.GHCR_TOKEN }}
Nakonfigurujte aplikaci kontejneru tak, aby stáhla obraz pomocí přihlašovacích údajů GHCR.
az containerapp registry set \
--name my-container-app \
--resource-group my-container-app-rg \
--server ghcr.io \
--username <GHCR_USERNAME> \
--password <GHCR_TOKEN>
Nahraďte <GHCR_USERNAME> svým uživatelským jménem na GitHubu a <GHCR_TOKEN> svým osobním přístupovým tokenem.
Poznámka:
Místo obecné značky, jako je nejnovější, použijte jedinečnou značku, například SHA potvrzení Gitu (${{ github.sha }}). To pomáhá vyhnout se problémům s ukládáním do mezipaměti a zajistit spolehlivé vytváření nových revizí.
Konfigurace
Pomocí následujících kroků nakonfigurujete pracovní postup GitHub Actions pro nasazení do Azure Container Apps.
- Vytvoření úložiště GitHub pro vaši aplikaci
- Vytvořte aplikaci kontejneru s povolenou spravovanou identitou
-
AcrPullPřiřazení role služby Azure Container Registry ke spravované identitě aplikace kontejneru - Konfigurace tajných kódů v úložišti GitHub
- Vytvoření pracovního postupu GitHub Actions
Požadavky
| Požadavek | Pokyny |
|---|---|
| Účet Azure | Pokud ho nemáte, vytvořte si účet zdarma. K pokračování potřebujete oprávnění přispěvatele nebo vlastníka předplatného Azure. Podrobnosti najdete v tématu Přiřazení rolí Azure pomocí webu Azure Portal . |
| Účet GitHubu | Zaregistrujte se zdarma. |
| Azure CLI (příkazový řádek nástroje Azure) | Nainstalujte rozhraní příkazového řádku Azure CLI. |
Vytvoření úložiště GitHub a klonování zdrojového kódu
Před vytvořením pracovního postupu musí být zdrojový kód aplikace v úložišti GitHub.
Přihlaste se k Azure pomocí Azure CLI.
az loginDále nainstalujte nejnovější rozšíření Azure Container Apps pro rozhraní příkazového řádku.
az extension add --name containerapp --upgradePokud nemáte vlastní úložiště GitHub, vytvořte si ho z ukázky.
- Přejděte do následujícího umístění a vytvořte nové úložiště:
- Pojmenujte své úložiště
my-container-app.
Naklonujte si úložiště na místní počítač.
git clone https://github.com/<YOUR_GITHUB_ACCOUNT_NAME>/my-container-app.git
Vytvořte aplikaci kontejneru s povolenou spravovanou identitou
Pomocí příkazu az containerapp up vytvořte kontejnerovou aplikaci v následujícím postupu. Tento příkaz vytvoří prostředky Azure, sestaví image kontejneru, uloží image do registru a nasadí do aplikace kontejneru.
Po vytvoření aplikace můžete do aplikace přidat spravovanou identitu a přiřadit jí identitu AcrPull , aby identita mohla načítat image z registru.
Přepněte do složky src klonovaného úložiště:
cd my-container-app cd srcPomocí příkazu vytvořte prostředky Azure a nasaďte aplikaci kontejneru
az containerapp up:az containerapp up \ --name my-container-app \ --source . \ --ingress externalNávod
Pokud sestavení selže s chybou úložiště Debian, ujistěte se, že používáte nejnovější verzi Azure CLI a rozšíření containerapp spuštěním příkazu
az extension add --name containerapp --upgrade. Případně přidejte do projektu soubor Dockerfile, abyste mohli mít větší kontrolu nad sestavením.Ve výstupu příkazu si poznamenejte název registru kontejneru Azure.
Získejte úplné ID prostředku registru kontejneru:
az acr show --name <ACR_NAME> --query id --output tsv<ACR_NAME>nahraďte názvem vašeho registru.Povolení spravované identity pro aplikaci kontejneru:
az containerapp identity assign \ --name my-container-app \ --resource-group my-container-app-rg \ --system-assignedPoznamenejte si principální ID spravované identity ve výstupu příkazu.
AcrPullPřiřaďte roli služby Container Registry spravované identitě aplikace kontejneru:az role assignment create \ --assignee <MANAGED_IDENTITY_PRINCIPAL_ID> \ --role AcrPull \ --scope <ACR_RESOURCE_ID>Nahraďte
<MANAGED_IDENTITY_PRINCIPAL_ID>ID hlavního objektu spravované identity a<ACR_RESOURCE_ID>ID prostředku služby Container Registry.Nakonfigurujte aplikaci kontejneru tak, aby používala spravovanou identitu k načtení imagí z registru kontejneru:
az containerapp registry set \ --name my-container-app \ --resource-group my-container-app-rg \ --server <ACR_NAME>.azurecr.io \ --identity systemNahraďte
<ACR_NAME>názvem vašeho registru kontejneru Azure.
Konfigurace tajných kódů v úložišti GitHub
Pracovní postup GitHubu vyžaduje tajný kód pojmenovaný AZURE_CREDENTIALS k ověření v Azure. Tajemství obsahuje přihlašovací údaje pro služební účet s rolí Přispěvatel ve skupině prostředků, která zahrnuje aplikaci kontejneru a registr kontejneru.
Vytvořte služební objekt s rolí Přispěvatel ve skupině prostředků, která obsahuje kontejnerovou aplikaci a registr kontejnerů.
az ad sp create-for-rbac \ --name my-app-credentials \ --role contributor \ --scopes /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/my-container-app-rg \ --json-auth \ --output jsonNahraďte
<SUBSCRIPTION_ID>ID vašeho předplatného Azure. Pokud je registr kontejneru v jiné skupině prostředků, zadejte obě skupiny prostředků v parametru--scopes.Zkopírujte výstup JSON z příkazu.
V úložišti GitHub přejděte do Nastavení>Tajné klíče>Akce a vyberte Nové tajemství úložiště.
Jako název zadejte
AZURE_CREDENTIALSnázev a jako hodnotu vložte obsah výstupu JSON.Vyberte Add secret (Přidat tajný kód).
Vytvoření pracovního postupu GitHub Actions
V úložišti GitHub přejděte na Akce a vyberte Nový pracovní postup.
Vyberte Nastavit pracovní postup sami.
Do editoru vložte následující YAML.
name: Azure Container Apps Deploy on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - 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: <ACR_NAME> containerAppName: my-container-app resourceGroup: my-container-app-rgNahraďte
<ACR_NAME>názvem služby Azure Container Registry. Potvrďte, že název větve v částibranchesa hodnoty proappSourcePath,containerAppNamearesourceGroupodpovídá hodnotám pro vaše úložiště a prostředky Azure.Potvrďte změny do hlavní větve.
Kroky pracovního postupu GitHub Actions by měly začít sestavovat a nasazovat vaši kontejnerovou aplikaci. Pokud chcete zkontrolovat jeho průběh, přejděte na Akce.
Pokud chcete nasadit novou revizi aplikace, nasdílejte do hlavní větve nové potvrzení.