Egyéni tároló üzembe helyezése az App Service-ben a GitHub Actions használatával
A GitHub Actions lehetővé teszi, hogy automatizált szoftverfejlesztési munkafolyamatot hozzon létre. Az Azure Web Deploy művelettel automatizálhatja a munkafolyamatot, hogy egyéni tárolókat helyezzen üzembe az App Service-ben a GitHub Actions használatával.
A munkafolyamatokat egy YAML-fájl (.yml) határozza meg az /.github/workflows/
adattár elérési útján. Ez a definíció a munkafolyamat különböző lépéseit és paramétereit tartalmazza.
Egy Azure-alkalmazás szolgáltatástároló munkafolyamatához a fájl három szakaszból áll:
Section | Tevékenységek |
---|---|
Hitelesítés | 1. Kérje le a szolgáltatásnevet vagy tegye közzé a profilt. 2. Hozzon létre egy GitHub-titkos kulcsot. |
Build | 1. Hozza létre a környezetet. 2. Hozza létre a tárolórendszerképet. |
Telepítés | 1. Helyezze üzembe a tárolórendszerképet. |
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók létrehozása ingyenesen
- Egy GitHub-fiók. Ha nincs fiókja, ingyenesen regisztrálhat egyet. Egy GitHub-adattárban lévő kódnak kell rendelkeznie a Azure-alkalmazás Szolgáltatásban való üzembe helyezéshez.
- Egy működő tárolóregisztrációs adatbázis és Azure-alkalmazás Service-alkalmazás tárolókhoz. Ez a példa az Azure Container Registryt használja. Győződjön meg arról, hogy a tárolókhoz készült Azure-alkalmazás szolgáltatás teljes üzembe helyezését elvégzi. A hagyományos webalkalmazásokkal ellentétben a tárolók webalkalmazásai nem rendelkeznek alapértelmezett kezdőlapokkal. Tegye közzé a tárolót egy működő példához.
Üzembehelyezési hitelesítő adatok létrehozása
A GitHub Actionshez készült Azure-alkalmazás Services szolgáltatással való hitelesítés ajánlott módja egy közzétételi profil. Hitelesítést szolgáltatásnévvel vagy Open ID Connecttel is végezhet, de a folyamat további lépéseket igényel.
Mentse a közzétételi profil hitelesítő adatait vagy szolgáltatásnevét GitHub-titkos kódként az Azure-ral való hitelesítéshez. A munkafolyamaton belül hozzáférhet a titkos kódhoz.
A közzétételi profil egy alkalmazásszintű hitelesítő adat. A közzétételi profil beállítása GitHub-titkos kódként.
Nyissa meg az App Service-t az Azure Portalon.
Az Áttekintés lapon válassza a Közzétételi profil lekérése lehetőséget.
Feljegyzés
2020 októberétől a Linux-webalkalmazások a fájl letöltése előtt meg kell adni az alkalmazásbeállítást
WEBSITE_WEBDEPLOY_USE_SCM
true
. Ez a követelmény a jövőben megszűnik. Az App Service-alkalmazás konfigurálása az Azure Portalon című cikkből megtudhatja, hogyan konfigurálhatja a webalkalmazások általános beállításait.Mentse a letöltött fájlt. A fájl tartalmával létrehoz egy GitHub-titkos kulcsot.
A GitHub-titkos kód konfigurálása hitelesítéshez
A GitHubon tallózzon az adattárban. Válassza a Beállítások biztonsági titkos kulcsok és változók > – Új adattár titkos műveletei > lehetőséget.> >
Alkalmazásszintű hitelesítő adatok használatához illessze be a letöltött közzétételi profilfájl tartalmát a titkos kód értékmezőbe. Nevezze el a titkos kulcsot AZURE_WEBAPP_PUBLISH_PROFILE
.
A GitHub-munkafolyamat konfigurálásakor az AZURE_WEBAPP_PUBLISH_PROFILE
Azure Web App üzembe helyezési műveletét fogja használni. Példa:
- uses: azure/webapps-deploy@v2
with:
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
GitHub-titkos kulcsok konfigurálása a beállításjegyzékhez
A Docker Bejelentkezési művelettel használandó titkos kulcsok meghatározása. A dokumentumban szereplő példa az Azure Container Registryt használja a tárolóregisztrációs adatbázishoz.
Nyissa meg a tárolót az Azure Portalon vagy a Dockerben, és másolja ki a felhasználónevet és a jelszót. Az Azure Container Registry felhasználónevét és jelszavát az Azure Portalon, a beállításjegyzék beállításkulcsai> alatt találja.
Adjon meg egy új titkos kulcsot a beállításjegyzékben szereplő felhasználónévhez
REGISTRY_USERNAME
.Adjon meg egy új titkos kulcsot a beállításjegyzékjelszóhoz
REGISTRY_PASSWORD
.
Tárolórendszerkép létrehozása
Az alábbi példa a Node.JS Docker-rendszerképet összeállító munkafolyamat egy részét mutatja be. A Docker Login használatával jelentkezzen be egy privát tárolóregisztrációs adatbázisba. Ez a példa az Azure Container Registryt használja, de ugyanez a művelet más adatbázisok esetében is működik.
name: Linux Container Node Workflow
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
A Docker-bejelentkezés használatával egyszerre több tárolóregisztrációs adatbázisba is bejelentkezhet. Ez a példa két új GitHub-titkos kódot tartalmaz a docker.io való hitelesítéshez. A példa feltételezi, hogy a beállításjegyzék gyökérszintjén található egy Dockerfile.
name: Linux Container Node Workflow
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- uses: azure/docker-login@v1
with:
login-server: index.docker.io
username: ${{ secrets.DOCKERIO_USERNAME }}
password: ${{ secrets.DOCKERIO_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
Üzembe helyezés App Service-tárolóban
Ha a rendszerképet egy egyéni tárolóban szeretné üzembe helyezni az App Service-ben, használja a azure/webapps-deploy@v2
műveletet. Ez a művelet hét paraméterből áll:
Paraméter | Magyarázat |
---|---|
alkalmazás neve | (Kötelező) Az App Service-alkalmazás neve |
közzétételi profil | (Nem kötelező) A Web Appsre (Windows és Linux) és a Web App Containersre (linux) vonatkozik. A többtárolós forgatókönyv nem támogatott. Profil (*.publishsettings) fájltartalmak közzététele webes üzembe helyezési titkos kódokkal |
pont-név | (Nem kötelező) Adjon meg egy, az éles ponttól eltérő meglévő pontot |
csomag | (Nem kötelező) Csak a webalkalmazásra vonatkozik: A csomag vagy mappa elérési útja. *.zip, *.war, *.jar vagy üzembe helyezendő mappa |
Képek | (Kötelező) Csak webalkalmazás-tárolókra vonatkozik: Adja meg a teljes tárolórendszerkép(ek) nevét. Például: "myregistry.azurecr.io/nginx:latest" vagy "python:3.7.2-alpine/". Többtárolós alkalmazások esetén több tárolórendszerkép neve is megadható (többsoros elválasztva) |
configuration-file | (Nem kötelező) Csak webalkalmazás-tárolókra vonatkozik: A Docker-Compose fájl elérési útja. Teljes elérési útnak kell lennie, vagy az alapértelmezett munkakönyvtárhoz képest. Többtárolós alkalmazásokhoz szükséges. |
indítási parancs | (Nem kötelező) Adja meg az indítási parancsot. Például dotnet futtatása vagy dotnet filename.dll |
name: Linux Container Node Workflow
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
- uses: azure/webapps-deploy@v2
with:
app-name: 'myapp'
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
images: 'mycontainer.azurecr.io/myapp:${{ github.sha }}'
Következő lépések
A GitHubon különböző adattárakba csoportosított műveletkészletet találhat, amelyek mindegyike dokumentációt és példákat tartalmaz a GitHub CI/CD-hez való használatához és az alkalmazások Azure-ban való üzembe helyezéséhez.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: