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>beállításai 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üldocker 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éget Tá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
- Ha felügyelt identitásokkal szeretné zárolni az ACR-hozzáférést, kövesse az alábbi útmutatót:
- Ha egy másik előfizetésben lévő beállításjegyzékből szeretne üzembe helyezni, válassza a Privát beállításjegyzék lehetőséget a beállításjegyzék-forrásban.
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. Kattintson a 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 elemet a 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 kattintva megvizsgá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 konfigurációs > általános beállításaihoz.
- 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 Beállítások > 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 futtassa az 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 futtassa az 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, futtassa az 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>'