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.
A GitHub Actions használatával automatizált szoftverfejlesztési munkafolyamatot hozhat létre. Az Azure Web Deploy művelettel automatizálhatja a munkafolyamatot, és egyéni tárolókat helyezhet üzembe az Azure App Service-ben.
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 App Service-tároló munkafolyamata esetében 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. Hozzon létre egy fiókot 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 befejezi a tárolók teljes üzembe helyezését az Azure App Service-ben. 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.
- Végezze el a következő feladatokat: Megtudhatja, hogyan hozhat létre tárolóalapú Node.js alkalmazást a Docker használatával, hogyan küldheti le a tárolórendszerképet egy beállításjegyzékbe, majd hogyan helyezheti üzembe a lemezképet az Azure App Service-ben.
Üzembehelyezési hitelesítő adatok létrehozása
Javasoljuk, hogy az Azure App Services for GitHub Actions használatával hitelesítse magát az OpenID Connect használatával. Hitelesítést szolgáltatásnévvel vagy közzétételi profillal is végezhet.
Az Azure-ral való hitelesítéshez mentse a közzétételi profil hitelesítő adatait vagy szolgáltatásnevét GitHub-titkos kódként. A titkos kulcsot a munkafolyamaton belül érheti el.
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 panelen válassza a Közzétételi profil lekérése lehetőséget.
Feljegyzés
2020 októberétől a felhasználóknak a
WEBSITE_WEBDEPLOY_USE_SCMa Linux-webalkalmazásoktruealkalmazásbeállítását. A webalkalmazások általános beállításainak konfigurálásáról az App Service-alkalmazás konfigurálása az Azure Portalon című témakörben tájékozódhat.Mentse a letöltött fájlt. A fájl tartalmával létrehozhat 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ág>Titkok és változók>Műveletek>Új adattár titka 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 használja a AZURE_WEBAPP_PUBLISH_PROFILE titkos kulcsot az Azure Web App üzembe helyezéséhez. 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 cikkben 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 }}
Az alábbi példa a Windows 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: Windows Container Workflow
on: [push]
jobs:
build:
runs-on: windows-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: Windows Container Workflow
on: [push]
jobs:
build:
runs-on: windows-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 |
|---|---|
app-name |
(Kötelező) Az App Service-alkalmazás neve. |
publish-profile |
(Nem kötelező) Webalkalmazásokkal (Windows és Linux) és webalkalmazás-tárolókkal (Linux) használható. A többtárolós forgatókönyv nem támogatott. Profilfájl \*.publishsettings tartalmának közzététele webes üzembe helyezési titkos kódokkal. |
slot-name |
(Nem kötelező) Adjon meg egy meglévő szlotot, amely eltér a gyártási szlottól. |
package |
(Nem kötelező) Csak webalkalmazásokkal használható: A csomag vagy mappa elérési útja.
\*.zip, \*.war, \*.jarvagy egy üzembe helyezendő mappa. |
images |
(Kötelező) Csak webalkalmazás-tárolók esetén használható: Adja meg a teljes tárolórendszerkép nevét. Például, myregistry.azurecr.io/nginx:latest vagy python:3.12.12-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ókhoz használható: 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. |
startup-command |
(Nem kötelező) Adja meg az indítási parancsot. Például: dotnet run 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 }}'
name: Windows_Container_Workflow
on: [push]
jobs:
build:
runs-on: windows-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 }}'
Kapcsolódó tartalom
A GitHubon különböző adattárakba csoportosított műveletkészletet találhat. Minden adattár 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.