Folyamatos üzembe helyezés egyéni tárolókkal a Azure-alkalmazás Szolgáltatásban

Ebben az oktatóanyagban konfigurálja az egyéni tárolórendszerképek folyamatos üzembe helyezését felügyelt Azure Container Registry-adattárakból vagy a Docker Hubból.

1. Ugrás az Üzembehelyezési központra

Az Azure Portalon lépjen az App Service-alkalmazás felügyeleti lapjára.

A bal oldali menüben kattintson az Üzembe helyezési központ> Gépház elemre.

2. Az üzembehelyezési forrás kiválasztása

Válassza ki az üzembehelyezési forrást a forgatókönyvtől függően:

  • A tárolóregisztrációs adatbázis beállítja a CI/CD-t a tárolóregisztrációs adatbázis és az App Service között.
  • A GitHub Actions lehetőség az Ön számára készült, ha a tárolórendszerkép forráskódját a GitHubon tartja fenn. A GitHub-adattárban új véglegesítések aktiválják, az üzembe helyezési művelet futtatható docker build közvetlenül docker push a tárolóregisztrációs adatbázisba, majd frissítheti az App Service-alkalmazást az új rendszerkép futtatásához. További információ: A CI/CD működése a GitHub Actions használatával.
  • A CI/CD Azure Pipelines szolgáltatással való beállításáról az Azure Web App Container üzembe helyezése az Azure Pipelinesból című témakörben olvashat.

Feljegyzés

Docker Compose-alkalmazás esetén válassza a Tárolóregisztrációs adatbázis lehetőséget.

Ha a GitHub Actions lehetőséget választja, kattintson az Engedélyezés gombra, és kövesse az engedélyezési utasításokat. Ha korábban már engedélyezte a GitHub használatát, a Fiók módosítása gombra kattintva telepítheti egy másik felhasználó adattárából.

Miután engedélyezte Azure-fiókját a GitHubon, válassza ki a szervezetet, adattárat és ágat , amelyből üzembe helyezhető.

2. Beállításjegyzék-beállítások konfigurálása

3. Beállításjegyzék-beállítások konfigurálása

Feljegyzés

A Sidecar-tárolók (előzetes verzió) többtárolós (Docker Compose) alkalmazásokat fognak sikerrel elérni az App Service-ben. Első lépésként tekintse meg az oktatóanyagot: Egyéni tárolókhoz készült oldalkocsi-tároló konfigurálása Azure-alkalmazás szolgáltatásban (előzetes verzió).

Többtárolós (Docker Compose) alkalmazás üzembe helyezéséhez válassza a Docker Compose lehetőségetTárolótípusban.

Ha nem látja a Tárolótípus legördülő menüt, görgessen vissza a Forráshoz, és válassza a Tárolóregisztrációs adatbázis lehetőséget.

A beállításjegyzék-forrásban válassza ki a tárolóregisztrációs adatbázis helyét. Ha sem az Azure Container Registry, sem a Docker Hub nem, válassza a Privát beállításjegyzék lehetőséget.

Feljegyzés

Ha a többtárolós (Docker Compose) alkalmazás több privát rendszerképet is használ, győződjön meg arról, hogy a privát rendszerképek ugyanabban a privát beállításjegyzékben találhatók, és ugyanazon felhasználói hitelesítő adatokkal érhetők el. Ha a többtárolós alkalmazás csak nyilvános lemezképeket használ, válassza a Docker Hubot, még akkor is, ha egyes képek nincsenek a Docker Hubban.

Kövesse a következő lépéseket a választott lap kiválasztásával.

A Beállításjegyzék legördülő listában az alkalmazással megegyező előfizetésben lévő regisztrációs adatbázisok jelennek meg. Válassza ki a kívánt beállításjegyzéket.

Feljegyzés

Válassza ki az üzembe helyezni kívánt lemezképet és címkét . Ha szeretné, írja be az indítási parancsot az indítási fájlba.

Kövesse a következő lépést a tároló típusától függően:

  • A Docker Compose esetében válassza ki a privát rendszerképek beállításjegyzékét. Kattintsona Fájl kiválasztása gombra a Docker Compose-fájl feltöltéséhez, vagy egyszerűen illessze be a Docker Compose-fájl tartalmát a konfigurációba.
  • Egyetlen tároló esetén válassza ki az üzembe helyezni kívánt lemezképet és címkét. Ha szeretné, írja be az indítási parancsot az indítási fájlba.

Az App Service hozzáfűzi az indítási fájl sztringét a docker run parancs végéhez (szegmensként) a [COMMAND] [ARG...] tároló indításakor.

3. A CI/CD engedélyezése

4. A CI/CD engedélyezése

Az App Service támogatja az Azure Container Registry és a Docker Hub CI/CD integrációját. Az engedélyezéshez válassza a Be elemeta folyamatos üzembe helyezésben.

Feljegyzés

Ha a GitHub Actionst választja a Forrásban, akkor nem kapja meg ezt a lehetőséget, mert a CI/CD-t közvetlenül a GitHub Actions kezeli. Ehelyett megjelenik egy munkafolyamat-konfigurációs szakasz, ahol az Előnézet fájlra kattintvamegvizsgálhatja a munkafolyamat-fájlt. Az Azure véglegesíti ezt a fájlt a kiválasztott GitHub-forrásadattárban a buildelési és üzembe helyezési feladatok kezeléséhez. További információ: A CI/CD működése a GitHub Actions használatával.

Ha engedélyezi ezt a beállítást, az App Service egy webhookot ad hozzá az Adattárhoz az Azure Container Registryben vagy a Docker Hubban. Az adattár akkor jelenik meg a webhookban, ha a kijelölt kép frissül.docker push A webhook hatására az App Service-alkalmazás újraindul, és a frissített rendszerkép lekéréséhez fut docker pull .

Feljegyzés

A webhook megfelelő működésének biztosításához elengedhetetlen, hogy a webalkalmazásban engedélyezve legyen az Alapszintű hitelesítési közzétételi hitelesítő adatok beállítás. Ennek elmulasztása 401 jogosulatlan hibát eredményezhet a webhook esetében. Annak ellenőrzéséhez, hogy engedélyezve van-e az egyszerű hitelesítésű közzétételi hitelesítő adatok , kövesse az alábbi lépéseket:

  • Lépjen a webalkalmazás általános konfigurációs > Gépház.
  • Keresse meg a Platformbeállítás szakaszt, ahol megtalálja az Egyszerű hitelesítés közzétételi hitelesítő adatok lehetőséget.

Más magánregisztrációs adatbázisok esetében manuálisan vagy egy CI/CD-folyamat lépéseként tehet közzé bejegyzéseket a webhookon. A Webhook URL-címében kattintson a Másolás gombra a webhook URL-címének lekéréséhez.

Feljegyzés

A többtárolós (Docker Compose) alkalmazások támogatása korlátozott:

  • Az Azure Container Registry esetében az App Service létrehoz egy webhookot a kiválasztott beállításjegyzékben, amelynek hatóköre a beállításjegyzék. A docker push beállításjegyzék bármely adattára (beleértve a Docker Compose-fájl által nem hivatkozottakat is) elindítja az alkalmazás újraindítását. Előfordulhat, hogy a webhookot szűkebb hatókörre szeretné módosítani.
  • A Docker Hub nem támogatja a webhookokat a beállításjegyzék szintjén. A webhookokat manuálisan kell hozzáadnia a Docker Compose-fájlban megadott képekhez.

4. Mentse a beállításokat

5. A beállítások mentése

Kattintson a Mentés gombra.

A CI/CD működése a GitHub Actions használatával

Ha a GitHub Actions in Source (Az üzembehelyezési forrás kiválasztása) lehetőséget választja, az App Service az alábbi módokon állítja be a CI/CD-t:

  • GitHub Actions-munkafolyamatfájlt helyez el a GitHub-adattárban a buildelési és üzembe helyezési feladatok App Service-ben való kezeléséhez.
  • GitHub-titkos kulcsként adja hozzá a magánregisztrációs adatbázis hitelesítő adatait. A létrehozott munkafolyamat-fájl futtatja az Azure/docker-login műveletet a privát beállításjegyzékbe való bejelentkezéshez, majd futtatja docker push az üzembe helyezést.
  • Hozzáadja az alkalmazás közzétételi profilját GitHub-titkos kódként. A létrehozott munkafolyamat-fájl ezzel a titkos kóddal hitelesíti az App Service-t, majd futtatja az Azure/webapps-deploy műveletet a frissített rendszerkép konfigurálásához, amely elindítja az alkalmazás újraindítását a frissített lemezkép lekéréséhez.
  • Rögzíti a munkafolyamat-futtatási naplók adatait, és megjeleníti azokat az alkalmazás Központi telepítési központjában, a Naplók lapon.

A GitHub Actions buildszolgáltatója a következő módokon szabható testre:

  • Testre szabhatja a munkafolyamat-fájlt, miután létrejött a GitHub-adattárban. További információ: A GitHub Actions munkafolyamat-szintaxisa. Csak győződjön meg arról, hogy a munkafolyamat az Azure/webapps-deploy művelettel ér véget az alkalmazás újraindításának aktiválásához.
  • Ha a kijelölt ág védett, a konfiguráció mentése nélkül is megtekintheti a munkafolyamat-fájlt, majd manuálisan hozzáadhatja azt és a szükséges GitHub-titkos kulcsokat az adattárhoz. Ez a módszer nem ad naplóintegrációt az Azure Portallal.
  • Közzétételi profil helyett üzembe helyezés szolgáltatásnévvel a Microsoft Entra ID-ban.

Hitelesítés szolgáltatásnévvel

Ez az opcionális konfiguráció az alapértelmezett hitelesítést a létrehozott munkafolyamat-fájl közzétételi profiljaira cseréli.

Hozzon létre egy egyszerű szolgáltatást az az ad sp create-for-rbac paranccsal az Azure CLI-ben. Az alábbi példában cserélje le <az előfizetés-azonosítót>,< a csoportnevet> és <az alkalmazásnevet> a saját értékeire. Mentse a teljes JSON-kimenetet a következő lépéshez, beleértve a legfelső szintűt {}is.

az ad sp create-for-rbac --name "myAppDeployAuth" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name>/providers/Microsoft.Web/sites/<app-name> \
                            --json-auth

Fontos

A biztonság érdekében adja meg a minimálisan szükséges hozzáférést a szolgáltatásnévhez. Az előző példában szereplő hatókör az adott App Service-alkalmazásra korlátozódik, nem pedig a teljes erőforráscsoportra.

A GitHubon keresse meg az adattárat, majd válassza a Gépház > Titkos kulcsok > új titkos kód hozzáadása lehetőséget. Illessze be az Azure CLI parancs teljes JSON-kimenetét a titkos kód értékmezőjébe. Adjon egy nevet a titkos kódnak, mint AZURE_CREDENTIALS.

Az Üzembe helyezési központ által létrehozott munkafolyamat-fájlban módosítsa a lépést a azure/webapps-deploy következő példához hasonló kóddal:

- name: Sign in to Azure 
# Use the GitHub secret you added
- uses: azure/login@v1
    with:
    creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Deploy to Azure Web App
# Remove publish-profile
- uses: azure/webapps-deploy@v2
    with:
    app-name: '<app-name>'
    slot-name: 'production'
    images: '<registry-server>/${{ secrets.AzureAppService_ContainerUsername_... }}/<image>:${{ github.sha }}'
    - name: Sign out of Azure
    run: |
    az logout

Automatizálás parancssori felülettel

A tárolóregisztrációs adatbázis és a Docker-rendszerkép konfigurálásához futtassaaz az webapp config tárolókészletet.

az webapp config container set --name <app-name> --resource-group <group-name> --docker-custom-image-name '<image>:<tag>' --docker-registry-server-url 'https://<registry-name>.azurecr.io' --docker-registry-server-user '<username>' --docker-registry-server-password '<password>'

Többtárolós (Docker Compose) alkalmazás konfigurálásához készítsen helyileg egy Docker Compose-fájlt, majd futtassaaz az webapp konfigurációs tárolókészletet a --multicontainer-config-file paraméterrel. Ha a Docker Compose-fájl privát képeket tartalmaz, adjon hozzá--docker-registry-server-* paramétereket az előző példában látható módon.

az webapp config container set --resource-group <group-name> --name <app-name> --multicontainer-config-file <docker-compose-file>

Ha a CI/CD-t a tárolóregisztrációs adatbázisból az alkalmazásba szeretné konfigurálni, futtassaaz az webapp deployment container config parancsot a --enable-cd paraméterrel. A parancs a webhook URL-címét adja ki, de a webhookot manuálisan kell létrehoznia a beállításjegyzékben egy külön lépésben. Az alábbi példa engedélyezi a CI/CD használatát az alkalmazásban, majd a kimenet webhook URL-címével hozza létre a webhookot az Azure Container Registryben.

ci_cd_url=$(az webapp deployment container config --name <app-name> --resource-group <group-name> --enable-cd true --query CI_CD_URL --output tsv)

az acr webhook create --name <webhook-name> --registry <registry-name> --resource-group <group-name> --actions push --uri $ci_cd_url --scope '<image>:<tag>'

További erőforrások