Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure Container Apps lehetővé teszi, hogy a GitHub Actions segítségével közzétegye a változatokat a tárolóalkalmazásában. A véglegesítések GitHub-adattárba való leküldésekor egy munkafolyamat aktiválódik, amely frissíti a tárolóregisztrációs adatbázis tárolólemezképét. Az Azure Container Apps egy új változatot hoz létre a frissített tárolórendszerkép alapján.
A GitHub Actions munkafolyamat akkor aktiválódik, amikor egy adott ágra követ el a tárhelyedben. A munkafolyamat létrehozásakor ön dönti el, hogy melyik ág aktiválja a munkafolyamatot.
Ez a cikk bemutatja, hogyan hozhat létre teljesen testre szabható munkafolyamatot. Ha kezdő GitHub Actions-munkafolyamatot szeretne létrehozni az Azure CLI-vel, olvassa el a GitHub Actions-munkafolyamat létrehozása az Azure CLI-vel című témakört.
Azure Container Apps GitHub-művelet
A tárolóalkalmazás létrehozásához és üzembe helyezéséhez adja hozzá a műveletet a azure/container-apps-deploy-action GitHub Actions-munkafolyamathoz.
A művelet a következő forgatókönyveket támogatja:
- Építés Dockerfile-ból és üzembe helyezés a Container Appsekbe
- Építés forráskódból Dockerfile nélkül, és telepítés tárolóalkalmazásokba. Támogatott nyelvek: .NET, Java, Node.js, PHP és Python
- Meglévő tárolórendszerkép üzembe helyezése a Container Appsben
Felhasználási példák
Íme néhány gyakori forgatókönyv a művelet használatához. További információkért tekintse meg a művelet GitHub Marketplace-oldalát.
Építés és bevezetés a Container Appsben
Az alábbi kódrészlet bemutatja, hogyan hozhat létre tárolórendszerképet a forráskódból, és hogyan helyezheti üzembe a Container Appsben.
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
A művelet a Dockerfile-t appSourcePath használja a tárolólemezkép létrehozásához. Ha nem található Dockerfile, a művelet megkísérli létrehozni a tárolórendszerképet a forráskódból a következőben appSourcePath: .
Meglévő tárolórendszerkép üzembe helyezése a Container Appsben
Az alábbi kódrészlet bemutatja, hogyan helyezhet üzembe egy meglévő tárolórendszerképet a Container Appsben.
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 }}
Fontos
Ha külön lépésben hoz létre egy konténerképet, győződjön meg arról, hogy egy olyan egyedi címkét használ, mint például a véglegesítési SHA a stabil címke helyett, mint például latest. További információ: Képcímke – ajánlott eljárások.
Hitelesítés az Azure Container Registry használatával
Az Azure Container Apps-műveletnek hitelesítenie kell az Azure Container Registryt a tárolórendszerkép leküldéséhez. A tárolóalkalmazásnak az Azure Container Registryvel is hitelesítenie kell a tárolólemezkép lekéréséhez.
A képek feltöltéséhez a művelet automatikusan hitelesíti magát azzal a tárolóregiszterrel acrName, amelyhez a azure/login hitelesítő adatok biztosítva vannak.
A rendszerképek lekéréséhez az Azure Container Apps felügyelt identitást (ajánlott) vagy rendszergazdai hitelesítő adatokat használ az Azure Container Registryvel való hitelesítéshez. A felügyelt identitás használatához a műveletet üzembe helyező tárolóalkalmazást úgy kell konfigurálni, hogy felügyelt identitást használjon. A regisztráció rendszergazdai hitelesítő adataival való hitelesítéshez állítsa be a művelet acrUsername és acrPassword bemeneteit.
Rendszerképek üzembe helyezése nem ACR-nyilvántartásokból
Az Azure Container Registry (ACR) mellett az Azure Container Apps más adatbázisokban, például a GitHub Container Registryben (GHCR) üzemeltetett tárolórendszerképeket is támogatja. Ez a szakasz bemutatja, hogyan telepíthet konténerképeket a GitHub Container Registry-ből, beleértve a nyilvános és privát képeket is.
Megjegyzés:
Ha nem ACR-beállításjegyzéket (például GHCR-t) használ, akkor is konfigurálnia kell a tárolóalkalmazást a beállításjegyzékkel való hitelesítésre, még akkor is, ha a rendszerkép nyilvános.
Nyilvános rendszerkép üzembe helyezése a GHCR-ből
Ha a tárolólemezkép nyilvános, hitelesítési hitelesítő adatok megadása nélkül is üzembe helyezheti. Az alábbi példa bemutatja, hogyan helyezhet üzembe nyilvános rendszerképet a GHCR-ből az üzembe helyezési művelet használatával.
A parancs futtatása előtt cserélje le <YOUR-GITHUB-USERNAME> a tényleges GitHub-felhasználónevére.
- 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
Üzembe helyezés előtt konfigurálja a tárolóalkalmazást a GHCR-ből való lekérésre:
az containerapp registry set \
--name my-container-app \
--resource-group my-container-app-rg \
--server ghcr.io
Privát rendszerkép üzembe helyezése a GHCR-ből
Ha a rendszerkép privát, hitelesítési hitelesítő adatokat kell megadnia a GitHub Actions-munkafolyamatban. Használjon egy GitHub személyes hozzáférési jogkivonatot (PAT) a read:packages hatókörrel. A jogkivonatot és a felhasználónevet titkos kulcsként tárolhatja a GitHub-adattárban.
- 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 }}
Konfigurálja a tárolóalkalmazást, hogy a kép letöltése a GHCR hitelesítési adataival történjen:
az containerapp registry set \
--name my-container-app \
--resource-group my-container-app-rg \
--server ghcr.io \
--username <GHCR_USERNAME> \
--password <GHCR_TOKEN>
Cserélje le a <GHCR_USERNAME>-t a GitHub-felhasználónevére és a <GHCR_TOKEN>-t a személyes hozzáférési tokenjére.
Megjegyzés:
Használjon egyedi címkét, például a Git commit SHA-t (${{ github.sha }}) általános címke helyett, például a legújabbat. Ez segít elkerülni a gyorsítótárazási problémákat, és biztosítja az új változatok megbízható létrehozását.
Konfiguráció
Az alábbi lépésekkel konfigurálhat egy GitHub Actions-munkafolyamatot az Azure Container Appsben való üzembe helyezéshez.
- GitHub-adattár létrehozása az alkalmazáshoz
- Engedélyezett felügyelt identitással rendelkező konténer alkalmazás létrehozása
-
AcrPullAz Azure Container Registry szerepkörének hozzárendelése a tárolóalkalmazás felügyelt identitásához - Titkos kódok konfigurálása a GitHub-adattárban
- GitHub Actions-munkafolyamat létrehozása
Előfeltételek
| Követelmény | Utasítások |
|---|---|
| Azure-fiók | Ha nem rendelkezik ilyen fiókkal, hozzon létre ingyenes fiókot. A folytatáshoz az Azure-előfizetés közreműködői vagy tulajdonosi engedélyére van szüksége. Részletekért tekintse meg az Azure-szerepkörök hozzárendelését az Azure Portalon . |
| GitHub-fiók | Regisztráljon ingyenesen. |
| Azure CLI (Az Azure parancssori felülete) | Telepítse az Azure CLI-t. |
GitHub-adattár létrehozása és forráskód klónozása
A munkafolyamat létrehozása előtt az alkalmazás forráskódjának egy GitHub-adattárban kell lennie.
Jelentkezzen be az Azure-ba az Azure CLI-vel.
az loginEzután telepítse a parancssori felület legújabb Azure Container Apps-bővítményét.
az extension add --name containerapp --upgradeHa nincs saját GitHub-adattára, hozzon létre egyet egy mintából.
- Új adattár létrehozásához lépjen a következő helyre:
- Nevezze el az adattárat
my-container-app.
Klónozza az adattárat a helyi gépre.
git clone https://github.com/<YOUR_GITHUB_ACCOUNT_NAME>/my-container-app.git
Engedélyezett felügyelt identitással rendelkező konténer alkalmazás létrehozása
Hozza létre a tárolóalkalmazást a az containerapp up következő lépésekben található paranccsal. Ez a parancs létrehozza az Azure-erőforrásokat, létrehozza a tárolórendszerképet, tárolja a lemezképet egy beállításjegyzékben, és üzembe helyezi egy tárolóalkalmazásban.
Az alkalmazás létrehozása után hozzáadhat egy felügyelt identitást az alkalmazáshoz, és hozzárendelheti az identitást a AcrPull szerepkörhöz, hogy lehetővé tegye az identitás számára a képfájlok lekérését a regisztrációs tárolóból.
Váltson a klónozott adattár src mappájára:
cd my-container-app cd srcAzure-erőforrások létrehozása és tárolóalkalmazás üzembe helyezése a
az containerapp upkövetkező paranccsal:az containerapp up \ --name my-container-app \ --source . \ --ingress externalJótanács
Ha a build debian-adattárhiba miatt meghiúsul, futtassa a legújabb Azure CLI-verziót és containerapp-bővítményt
az extension add --name containerapp --upgrade. Másik lehetőségként adjon hozzá egy Dockerfile-t a projekthez, hogy jobban szabályozhassa a buildet.A parancs kimenetében jegyezze fel az Azure Container Registry nevét.
Kérje le a tárolóregisztrációs adatbázis teljes erőforrás-azonosítóját:
az acr show --name <ACR_NAME> --query id --output tsvCserélje le a
<ACR_NAME>elemet a tárolójegyzék nevére.Felügyelt identitás engedélyezése a tárolóalkalmazáshoz:
az containerapp identity assign \ --name my-container-app \ --resource-group my-container-app-rg \ --system-assignedJegyezze meg a felügyelt identitás principális azonosítóját a parancs kimenetében.
Rendelje hozzá a tárolóleltár szerepkört a
AcrPulltárolóalkalmazás felügyelt identitásához:az role assignment create \ --assignee <MANAGED_IDENTITY_PRINCIPAL_ID> \ --role AcrPull \ --scope <ACR_RESOURCE_ID>Cserélje le
<MANAGED_IDENTITY_PRINCIPAL_ID>a felügyelt identitás egyszerű azonosítójára és<ACR_RESOURCE_ID>a Tárolóregisztrációs adatbázis erőforrás-azonosítójára.Konfigurálja a tárolóalkalmazást úgy, hogy a felügyelt identitás használatával lekérje a lemezképeket a tárolóregisztrációs adatbázisból:
az containerapp registry set \ --name my-container-app \ --resource-group my-container-app-rg \ --server <ACR_NAME>.azurecr.io \ --identity systemCserélje le
<ACR_NAME>az Azure-tárolóregisztrációs adatbázis nevére.
Titkos kódok konfigurálása a GitHub-adattárban
A GitHub-munkafolyamathoz egy titkos kódra van szükség, amely az Azure-ral való hitelesítéshez szükséges AZURE_CREDENTIALS . A titkos kód tartalmazza a tárolóalkalmazást és a tárolóregisztrációs adatbázist tartalmazó erőforráscsoport közreműködői szerepkörrel rendelkező szolgáltatásnév hitelesítő adatait.
Hozzon létre egy szolgáltatásfőösszetet a hozzájáruló szerepkörrel a tárolóalkalmazást és a tárolóregisztrációs adatbázist tartalmazó erőforráscsoportban.
az ad sp create-for-rbac \ --name my-app-credentials \ --role contributor \ --scopes /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/my-container-app-rg \ --json-auth \ --output jsonCserélje le
<SUBSCRIPTION_ID>az Azure-előfizetés azonosítójára. Ha a tárolóregisztrációs adatbázis egy másik erőforráscsoportban található, adja meg mindkét erőforráscsoportot a--scopesparaméterben.Másolja ki a JSON-kimenetet a parancsból.
A GitHub-adattárban navigáljon a Beállítások>Titkok>Akciók részhez, és válassza az Új adattári titok lehetőséget.
Adja meg
AZURE_CREDENTIALSa nevet, és illessze be a JSON-kimenet tartalmát értékként.Válassza az Add secret (Titkos kód hozzáadása) lehetőséget.
GitHub Actions-munkafolyamat létrehozása
A GitHub-adattárban lépjen a Műveletek elemre, és válassza az Új munkafolyamat lehetőséget.
Válassza a Munkafolyamat beállítása lehetőséget.
Illessze be a következő YAML-et a szerkesztőbe.
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-rgCserélje le
<ACR_NAME>az Azure Container Registry nevére. Győződjön meg arról, hogy a(z)branchesalatti ág neve és aappSourcePath,containerAppName, valamintresourceGroupértékek megegyeznek az adattár és az Azure-erőforrások értékeivel.Véglegesítse a módosításokat a main ágon.
Egy GitHub Actions-munkafolyamat futtatásának meg kell kezdődnie a tárolóalkalmazás létrehozásához és üzembe helyezéséhez. A folyamat állapotának ellenőrzéséhez lépjen a Műveletek elemre.
Az alkalmazás új verziójának üzembe helyezéséhez tegyen közzé egy új commitot a main ágba.