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 App Service előre definiált alkalmazásvermeket biztosít, például ASP.NET vagy Node.jsWindows rendszeren. Ezek az alkalmazásvermek IIS-en futnak. Az előre konfigurált Windows-környezet zárolja az operációs rendszert a következőből:
- Rendszergazdai hozzáférés.
- Szoftvertelepítések.
- A globális szerelvény-gyorsítótár módosítása.
További információkért lásd az App Service operációsrendszer-funkcióit.
Egyénileg konfigurált Windows-rendszerképet helyezhet üzembe a Visual Studióban az alkalmazás által igényelt operációsrendszer-módosítások elvégzéséhez. Ez megkönnyíti egy olyan helyszíni alkalmazás migrálását, amely egyéni operációs rendszert és szoftverkonfigurációt igényel. Ez az oktatóanyag bemutatja egy Windows betűkészlet-könyvtárba telepített egyéni betűkészletet használó ASP.NET-alkalmazás az App Service-be való áttelepítésének menetét. Egyénileg konfigurált Windows-rendszerképet telepít a Visual Studióból az Azure Container Registrybe, majd futtatja az App Service-ben.
Előfeltételek
- Regisztráljon Egy Docker Hub-fiókra.
- Windows rendszerhez készült Docker telepítése.
- Konfigurálja a Dockert Windows-tárolók futtatására.
-
Telepítse a Visual Studio 2022-t a ASP.NET és webfejlesztési és Azure-fejlesztési számítási feladatokkal. Ha már telepítve van a Visual Studio 2022:
- Telepítse a legújabb frissítéseket a Visual Studióban a Frissítések keresése súgójának>kiválasztásával.
- Adja hozzá a számítási feladatokat a Visual Studióban az Eszközök>lekérése eszközök és szolgáltatások lehetőség kiválasztásával.
Az alkalmazás helyi beállítása
A minta letöltése
Ebben a lépésben a helyi .NET-projektet állíthatja be.
- Töltse le a mintaprojektet.
- Bontsa ki (bontsa ki) a custom-font-win-container-master.zip fájlt.
A mintaprojekt egy egyszerű ASP.NET alkalmazást tartalmaz, amely a Windows betűtípustárba telepített egyéni betűtípust használja. Nem szükséges betűtípusokat telepíteni. A minta azonban egy olyan alkalmazás példája, amely integrálva van az alapul szolgáló operációs rendszerrel. Az ilyen alkalmazások App Service-be történő áttelepítéséhez vagy újraírja a kódját az integráció eltávolításához, vagy áttelepíti egy egyéni Windows-tárolóban a jelenlegi formájában.
Betűkészlet telepítése
A Windows Intézőben lépjen a custom-font-win-container-master/CustomFontSample elemre, kattintson a jobb gombbal a FrederickatheGreat-Regular.ttf, és válassza a Telepítés lehetőséget.
Ez a betűkészlet nyilvánosan elérhető innen: Google Fonts.
Az alkalmazás futtatása
Nyissa meg a custom-font-win-container-master/CustomFontSample.sln fájlt a Visual Studióban.
Az alkalmazás hibakeresés nélküli futtatásához válassza a Ctrl+F5 billentyűkombinációt. Az alkalmazás megjelenik az alapértelmezett böngészőben.
Mivel az alkalmazás telepített betűtípust használ, az alkalmazás nem futtatható az App Service tesztkörnyezetében. Ezt azonban windowsos tárolóval is üzembe helyezheti, mert a betűtípust a Windows-tárolóban telepítheti.
Windows-tároló konfigurálása
A Megoldáskezelőben kattintson jobb gombbal a CustomFontSample projektre, és válassza az Add>Container Orchestration Support (Hozzáadás > Container Orchestration Support) lehetőséget.
Válassza a Docker Compose>OK elemet.
A projekt most már windowsos tárolóban fut. A Dockerfile CustomFontSample projekthez a rendszer hozzáad egy docker-compose projektet a megoldáshoz.
Nyissa meg a Dockerfile-t a Megoldáskezelőben.
Egy támogatott szülőrendszerképet kell használnia. Módosítsa a szülőrendszerképet a FROM sor a következő kódra való lecserélésével:
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.7.2-windowsservercore-ltsc2019
Adja hozzá a következő sort a fájl végéhez, és mentse a fájlt:
RUN ${source:-obj/Docker/publish/InstallFont.ps1}
Az InstallFont.ps1 megtalálható a CustomFontSample projektben. Ez egy egyszerű szkript a betűkészlet telepítéséhez. A szkript összetettebb verzióját a PowerShell-galéria találja.
Feljegyzés
A Windows-tároló helyi teszteléséhez győződjön meg arról, hogy a Docker a helyi gépen van elindítva.
Közzététel az Azure Container Registryben
Az Azure Container Registry képes tárolni a rendszerképeket a tárolók üzembe helyezéséhez. Konfigurálhatja az App Service-t a Container Registryben tárolt rendszerképek használatára.
A Közzététel ablak megnyitása
A Megoldáskezelőben kattintson a jobb gombbal a CustomFontSample projektre, és válassza a Közzététel lehetőséget.
A beállításjegyzék létrehozása és közzététele
A Közzététel ablakban válassza az Azure-t, majd a Tovább lehetőséget.
Válassza az Azure Container Registryt, majd a Tovább gombot.
Válassza ki azt az előfizetést, amelyben közzé szeretné tenni a beállításjegyzéket, majd válassza az Új létrehozása lehetőséget.
Bejelentkezés Azure-fiókkal
Az Azure Container Registry ablakban válassza a Fiók hozzáadása lehetőséget, majd jelentkezzen be az Azure-előfizetésbe. Ha már bejelentkezett, válassza ki a kívánt előfizetést tartalmazó fiókot a legördülő listából.
A beállításjegyzék konfigurálása
Konfigurálja az új tárolóregisztrációs adatbázist az alábbi táblázatban javasolt értékekkel útmutatóként. Miután végzett, válassza a Létrehozás lehetőséget.
| Beállítás | Ajánlott érték |
|---|---|
| DNS-előtag | Megtarthatja a beállításjegyzék létrehozott nevét, vagy módosíthatja egy másik egyedi névre. |
| Erőforráscsoport | Válassza az Új lehetőséget, írja be a myResourceGroup nevet, majd kattintson az OK gombra. |
| Termékváltozat | Alapszintű. További információ: Tarifacsomagok. |
| Beállításjegyzékbeli hely | Nyugat-Európa |
Válassza ki a Befejezésopciót.
Megnyílik egy terminálablak, amely megjeleníti a rendszerkép üzembe helyezésének folyamatát. Várjon, amíg az üzembe helyezés befejeződik.
Bejelentkezés az Azure-ba
Jelentkezzen be az Azure Portalra.
Webalkalmazás létrehozása
Válassza az Erőforrás létrehozása, majd a WebAlkalmazás területen a Létrehozás lehetőséget.
Az alkalmazás alapjainak konfigurálása
Az Alapszintű beállítások lapon konfigurálja a beállításokat az alábbi táblázat útmutatóként való használatával.
| Beállítás | Ajánlott érték |
|---|---|
| Előfizetés | Győződjön meg arról, hogy a megfelelő előfizetés van kiválasztva. |
| Erőforráscsoport | Válassza az Új létrehozása lehetőséget, írja be a myResourceGroup nevet, majd kattintson az OK gombra. |
| Név | Adjon meg egy egyedi nevet. A webalkalmazás URL-címe https://<app-name>.azurewebsites.net, amelyben az <app-name> az alkalmazás neve. |
| Közzététel | Tároló |
| Operációs rendszer | Windows |
| Régió | Nyugat-Európa |
| Windows-csomag | Válassza az Új létrehozása lehetőséget, írja be a myAppServicePlan parancsot, majd kattintson az OK gombra. |
Az Alapismeretek lapnak az alábbihoz hasonlóan kell kinéznie:
A Windows-tároló konfigurálása
A Tároló lapon konfigurálja az egyéni Windows-tárolót az alábbi táblázatban látható módon, majd válassza a Véleményezés + létrehozás lehetőséget.
| Beállítás | Ajánlott érték |
|---|---|
| Kép forrása | Azure Container Registry |
| Registry | Válassza ki a korábban létrehozott beállításjegyzéket. |
| Rendszerkép | customfontsample |
| Tag | legújabb |
Alkalmazás létrehozásának befejezése
Válassza a Létrehozás lehetőséget , és várja meg, amíg az Azure létrehozza a szükséges erőforrásokat.
A webalkalmazás kikeresése
Ha az üzembe helyezés befejeződött, megjelenik egy értesítési üzenet:
Válassza az Erőforrás megnyitása lehetőséget.
Az alkalmazásoldalon válassza az URL-cím alatti hivatkozást.
Egy új böngészőlapon a következő oldal jelenik meg:
Várjon néhány percet, és próbálkozzon újra, amíg meg nem kapja a kezdőlapot a várt betűtípussal:
Gratulálunk! Migrált egy ASP.NET alkalmazást az App Service-be egy Windows-tárolóban.
A tároló indítási naplóinak megtekintése
A Windows-tároló betöltése eltarthat egy ideig. Az előrehaladás megtekintéséhez lépjen a következő URL-címre. (Cserélje le <az alkalmazás nevét> az alkalmazás nevére.)
https://<app-name>.scm.azurewebsites.net/api/logstream
A streamelt naplók a következőképpen néznek ki:
14/09/2018 23:16:19.889 INFO - Site: fonts-win-container - Creating container for image: customfontsample20180914115836.azurecr.io/customfontsample:latest.
14/09/2018 23:16:19.928 INFO - Site: fonts-win-container - Create container for image: customfontsample20180914115836.azurecr.io/customfontsample:latest succeeded. Container Id 329ecfedbe370f1d99857da7352a7633366b878607994ff1334461e44e6f5418
14/09/2018 23:17:23.405 INFO - Site: fonts-win-container - Start container succeeded. Container: 329ecfedbe370f1d99857da7352a7633366b878607994ff1334461e44e6f5418
14/09/2018 23:17:28.637 INFO - Site: fonts-win-container - Container ready
14/09/2018 23:17:28.637 INFO - Site: fonts-win-container - Configuring container
14/09/2018 23:18:03.823 INFO - Site: fonts-win-container - Container ready
14/09/2018 23:18:03.823 INFO - Site: fonts-win-container - Container start-up and configuration completed successfully
Az Azure App Service Docker-tárolótechnológiát használ a beépített rendszerképek és az egyéni rendszerképek üzemeltetéséhez. A beépített rendszerképek listájának megtekintéséhez futtassa az Azure CLI-parancsot, az webapp list-runtimes --os linux. Ha ezek a rendszerképek nem felelnek meg az igényeinek, egyéni rendszerképeket hozhat létre és helyezhet üzembe.
Feljegyzés
A tárolónak az x86-64 architektúrát kell céloznia. Az ARM64 nem támogatott.
Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:
- Egyéni Docker-rendszerkép leküldése az Azure Container Registrybe.
- Helyezze üzembe az egyéni rendszerképet az App Service-ben.
- Környezeti változók konfigurálása.
- A rendszerkép lekérése az App Service-be felügyelt identitás használatával.
- Diagnosztikai naplók elérése.
- Engedélyezze a CI/CD-t a Container Registryből az App Service-be.
- Csatlakozzon a tárolóhoz SSH használatával.
Az oktatóanyag elvégzése kis díjat von maga után az Azure-fiókjában a tárolóregisztrációs adatbázisért, és több költséggel jár, ha egy hónapnál hosszabb ideig üzemelteti a tárolót.
A kezdeti környezet beállítása
Ehhez az oktatóanyaghoz az Azure CLI 2.0.80-s vagy újabb verziója szükséges. Ha Az Azure Cloud Shellt használja, a legújabb verzió már telepítve van.
- Győződjön meg arról, hogy rendelkezik aktív előfizetéssel rendelkező Azure-fiókkal. Fiók ingyenes létrehozása.
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: Az Azure Cloud Shell használatának első lépései.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd: Hitelesítés az Azure-ba az Azure CLI használatával.
Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata és kezelése az Azure CLI-vel.
Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.
- Telepítse a Dockert, amelyet Docker-rendszerképek létrehozásához használ. A Docker telepítéséhez szükség lehet a számítógép újraindítására.
A Docker telepítése után nyisson meg egy terminálablakot, és ellenőrizze, hogy telepítve van-e a docker:
docker --version
A mintaalkalmazás klónozása vagy letöltése
Az oktatóanyaghoz tartozó mintát a Git klónozásával vagy letöltésével szerezheti be.
Az adattár klónozása a Git Bash használatával
Klónozza a mintaadattárat:
git clone https://github.com/Azure-Samples/docker-django-webapp-linux.git --config core.autocrlf=input
Győződjön meg arról, hogy az --config core.autocrlf=input argumentumot a Linux-tárolóban használt fájlok megfelelő sorvégződéseinek biztosításához adja meg.
Ezután lépjen a mappára:
cd docker-django-webapp-linux
A ZIP letöltése a GitHubról
A Git-klón használata helyett válassza a https://github.com/Azure-Samples/docker-django-webapp-linuxKód>helyi>letöltése ZIP-t.
Csomagolja ki a ZIP-fájlt egy docker-django-webapp-linux nevű mappába.
Ezután nyisson meg egy terminálablakot a docker-django-webapp-linux mappában.
(Nem kötelező) A Docker-fájl vizsgálata
Az alábbiakban a Dockerfile nevű mintafájlt követjük. Leírja a Docker-lemezképet, és konfigurációs utasításokat tartalmaz.
FROM tiangolo/uwsgi-nginx-flask:python3.6
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt --no-cache-dir
ADD . /code/
# ssh
ENV SSH_PASSWD "root:Docker!"
RUN apt-get update \
&& apt-get install -y --no-install-recommends dialog \
&& apt-get update \
&& apt-get install -y --no-install-recommends openssh-server \
&& echo "$SSH_PASSWD" | chpasswd
COPY sshd_config /etc/ssh/
COPY init.sh /usr/local/bin/
RUN chmod u+x /usr/local/bin/init.sh
EXPOSE 8000 2222
#CMD ["python", "/code/manage.py", "runserver", "0.0.0.0:8000"]
ENTRYPOINT ["init.sh"]
- Az első parancscsoport telepíti az alkalmazás követelményeit a környezetben.
- A parancsok második csoportja létrehoz egy SSH-kiszolgálót, amely továbbfejlesztett biztonsági kommunikációt biztosít a tároló és a gazdagép között.
- Az utolsó sor
ENTRYPOINT ["init.sh"]meghívjainit.shaz SSH-szolgáltatást és a Python-kiszolgálót.
A rendszerkép helyi létrehozása és tesztelése
Feljegyzés
A Docker Hub kvótákat ír elő a névtelen lekérések IP-címenkénti számára és az ingyenes felhasználónkénti hitelesített lekérések számára. Ha azt tapasztalja, hogy a Docker Hubról érkező lekérések korlátozottak, próbálkozzon a futtatással docker login , ha még nincs bejelentkezve.
Futtassa a következő parancsot a rendszerkép létrehozásához:
docker build --tag appsvc-tutorial-custom-image .A build működésének tesztelése a Docker-tároló helyi futtatásával:
docker run -it -p 8000:8000 appsvc-tutorial-custom-imageEz
docker runa parancs az argumentum használatával-padja meg a portot, és tartalmazza a kép nevét.-ita Ctrl+C billentyűkombinációval állíthatja le.Tipp.
Ha Windows rendszeren fut, és a *standard_init_linux.go:211: exec felhasználói folyamat "nincs ilyen fájl vagy könyvtár" hibaüzenet jelenik meg, a init.sh fájl a várt LF-végződések helyett CRLF-sorvégződéseket tartalmaz. Ez a hiba akkor fordul elő, ha a Gittel klónozta a mintaadattárat, de nem használta a paramétert
--config core.autocrlf=input. Ebben az esetben klónozza újra az adattárat az--configargumentummal. Akkor is megjelenhet a hiba, ha init.sh szerkesztette, és CRLF-végződésekkel mentette. Ebben az esetben mentse újra a fájlt csak LF végződésekkel.Tallózással
http://localhost:8000ellenőrizheti, hogy a webalkalmazás és a tároló megfelelően működik-e.
Felhasználó által hozzárendelt felügyelt identitás létrehozása
Az App Service egy alapértelmezett felügyelt identitást vagy egy felhasználó által hozzárendelt felügyelt identitást használhat a tárolóregisztrációs adatbázissal való hitelesítéshez. Ebben az oktatóanyagban egy felhasználó által hozzárendelt felügyelt identitást fog használni.
Futtassa az az group create parancsot egy erőforráscsoport létrehozásához:
az group create --name msdocs-custom-container-tutorial --location westeuropeAz értéket úgy módosíthatja
--location, hogy egy Önhöz közeli régiót adjon meg.Felügyelt identitás létrehozása az erőforráscsoportban:
az identity create --name myID --resource-group msdocs-custom-container-tutorial
Container Registry létrehozása
Hozzon létre egy tárolóregisztrációs adatbázist az alábbi
az acr createparanccsal. Cserélje le az<registry-name>elemet az adatbázis egyedi nevére. A névnek csak betűket és számokat kell tartalmaznia, és minden Azure-ban egyedinek kell lennie.az acr create --name <registry-name> --resource-group msdocs-custom-container-tutorial --sku Basic --admin-enabled trueA
--admin-enabledparaméter lehetővé teszi a rendszerképek leküldését a beállításjegyzékbe rendszergazdai hitelesítő adatok használatával.Kérje le a rendszergazdai hitelesítő adatokat a
az credential acr showparancs futtatásával:az acr credential show --resource-group msdocs-custom-container-tutorial --name <registry-name>A parancs JSON-kimenete két jelszót biztosít a beállításjegyzék felhasználóneve mellett.
A mintakép leküldése a Tárolóregisztrációs adatbázisba
Ebben a szakaszban leküldi a rendszerképet a Container Registrybe, amelyet az App Service később használ.
A mintarendszerképet tartalmazó helyi terminálról a
docker loginparancs használatával jelentkezzen be a tárolóregisztrációs adatbázisba:docker login <registry-name>.azurecr.io --username <registry-username>Cserélje le és
<registry-name>cserélje le<registry-username>az előző lépések értékeit. Amikor a rendszer kéri, írja be az előző szakasz egyik jelszavát.Használja ugyanazt a beállításjegyzéknevet a szakasz többi lépésében.
Ha a bejelentkezés sikeres, címkézze fel a helyi Docker-rendszerképet a beállításjegyzékbe:
docker tag appsvc-tutorial-custom-image <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latestdocker pushA parancs használatával küldje le a rendszerképet a beállításjegyzékbe:docker push <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latestA rendszerkép első feltöltése eltarthat néhány percig, mert tartalmazza az alaprendszerképet. A későbbi feltöltések általában gyorsabbak.
Várakozás közben elvégezheti a következő szakaszban leírt lépéseket az App Service beállításjegyzékből való üzembe helyezésének konfigurálásához.
Felügyelt identitás engedélyezése a beállításjegyzékhez
A létrehozott felügyelt identitás még nem rendelkezik engedéllyel a tárolóregisztrációs adatbázisból való lekéréshez. Ebben a lépésben engedélyezi az engedélyezést.
Kérje le a felügyelt identitás egyszerű azonosítóját:
principalId=$(az identity show --resource-group msdocs-custom-container-tutorial --name myID --query principalId --output tsv)Kérje le a tárolóregisztrációs adatbázis erőforrás-azonosítóját:
registryId=$(az acr show --resource-group msdocs-custom-container-tutorial --name <registry-name> --query id --output tsv)Adjon engedélyt a felügyelt identitásnak a tárolóregisztrációs adatbázis eléréséhez:
az role assignment create --assignee $principalId --scope $registryId --role "AcrPull"További információ ezekről az engedélyekről: Mi az Az Azure szerepköralapú hozzáférés-vezérlése?
A webapp létrehozása
Hozzon létre egy App Service-csomagot a
az appservice plan createkövetkező paranccsal:az appservice plan create --name myAppServicePlan --resource-group msdocs-custom-container-tutorial --is-linuxAz App Service-csomagok a webalkalmazást üzemeltető virtuális gépnek felelnek meg. Alapértelmezés szerint az előző parancs egy olcsó B1 tarifacsomagot használ, amely az első hónapban ingyenes. A réteget a
--skuparaméterrel adhatja meg.Hozza létre a webalkalmazást a
az webapp createkövetkező paranccsal:az webapp create --resource-group msdocs-custom-container-tutorial --plan myAppServicePlan --name <app-name> --deployment-container-image-name <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latestCserélje le
<app-name>a webalkalmazás nevét. A névnek az Azure-ban egyedinek kell lennie. Cserélje le<registry-name>az előző szakaszban szereplő beállításjegyzék nevére is.Tipp.
A webalkalmazás tárolóbeállításai bármikor lekérhetők a paranccsal
az webapp config container show --name <app-name> --resource-group msdocs-custom-container-tutorial. A rendszerkép a tulajdonságbanDOCKER_CUSTOM_IMAGE_NAMEvan megadva. Ha a webalkalmazás azure DevOps- vagy Azure Resource Manager-sablonokkal van üzembe helyezve, a rendszerkép egy nevesítettLinuxFxVersiontulajdonságban is megjelenhet. Mindkét tulajdonság ugyanazt a célt szolgálja. Ha mindkettő megtalálható a webalkalmazás konfigurációjában,LinuxFxVersionelsőbbséget élvez.
A webalkalmazás konfigurálása
Ebben a lépésben az alábbiak szerint konfigurálja a webalkalmazást:
- Konfigurálja az alkalmazást úgy, hogy kéréseket küldjön a 8000-s portra. A mintatároló a 8000-s porton figyeli a webes kéréseket.
- Konfigurálja az 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.
- Konfigurálja a folyamatos üzembe helyezést a tárolóregisztrációs adatbázisból. (A beállításjegyzékbe való minden képküldés aktiválja az alkalmazást az új rendszerkép lekéréséhez.) Ez a lépés nem szükséges ahhoz, hogy a webalkalmazás lekérje a tárolóregisztrációs adatbázisból, de értesítést küldhet a webalkalmazásnak, ha egy új rendszerképet küld a beállításjegyzékbe. Ha nem hajtja végre ezt a lépést, manuálisan kell aktiválnia egy kép lekérését a webalkalmazás újraindításával.
A
az webapp config appsettings setkörnyezeti változót azWEBSITES_PORTalkalmazáskód által várt módon állíthatja be:az webapp config appsettings set --resource-group msdocs-custom-container-tutorial --name <app-name> --settings WEBSITES_PORT=8000Cserélje le
<app-name>az előző lépésben használt névre.Engedélyezze a felhasználó által hozzárendelt felügyelt identitást a webalkalmazásban a
az webapp identity assignkövetkező paranccsal:id=$(az identity show --resource-group msdocs-custom-container-tutorial --name myID --query id --output tsv) az webapp identity assign --resource-group msdocs-custom-container-tutorial --name <app-name> --identities $idCserélje le
<app-name>az előző lépésben használt névre.Konfigurálja az alkalmazást úgy, hogy felügyelt identitások használatával lekérje a Container Registryből.
appConfig=$(az webapp config show --resource-group msdocs-custom-container-tutorial --name <app-name> --query id --output tsv) az resource update --ids $appConfig --set properties.acrUseManagedIdentityCreds=TrueCserélje le
<app-name>az előző lépésben használt névre.Állítsa be azt az ügyfél-azonosítót, amelyet a webalkalmazás a Container Registryből való lekéréshez használ. Ez a lépés nem szükséges, ha a rendszer által hozzárendelt felügyelt identitást használja.
clientId=$(az identity show --resource-group msdocs-custom-container-tutorial --name myID --query clientId --output tsv) az resource update --ids $appConfig --set properties.AcrUserManagedIdentityID=$clientIdEngedélyezze a CI/CD-t az App Service-ben.
cicdUrl=$(az webapp deployment container config --enable-cd true --name <app-name> --resource-group msdocs-custom-container-tutorial --query CI_CD_URL --output tsv)CI_CD_URLAz App Service által létrehozott URL-cím. A beállításjegyzéknek ezt az URL-címet kell használnia, hogy értesítse az App Service-t a rendszerkép leküldéséről. Valójában nem hozza létre a webhookot.Hozzon létre egy webhookot a tárolóregisztrációs adatbázisban. Használja az utolsó lépésben kapott CI_CD_URL.
az acr webhook create --name appserviceCD --registry <registry-name> --uri $cicdUrl --actions push --scope appsvc-tutorial-custom-image:latestAnnak ellenőrzéséhez, hogy a webhook megfelelően van-e konfigurálva, pingelje a webhookot, és ellenőrizze, hogy kap-e 200 OK választ.
eventId=$(az acr webhook ping --name appserviceCD --registry <registry-name> --query id --output tsv) az acr webhook list-events --name appserviceCD --registry <registry-name> --query "[?id=='$eventId'].eventResponseMessage"Tipp.
A webhook összes eseményével kapcsolatos összes információ megtekintéséhez távolítsa el a paramétert
--query.Ha a tárolónaplót streameli, a webhook pingelése után egy
Starting container for siteüzenetnek kell megjelennie, mert a webhook aktiválja az alkalmazást az újraindításhoz.
A webalkalmazás kikeresése
Az alkalmazás teszteléséhez keresse meg a következőt https://<app-name>.azurewebsites.net: . A <app-name> rész helyére a webalkalmazás nevét írja be.
Amikor először próbál hozzáférni az alkalmazáshoz, eltarthat egy ideig, amíg az alkalmazás válaszol, mert az App Service-nek le kell húznia a teljes lemezképet a beállításjegyzékből. Ha a böngésző túllépi az időkorlátot, frissítse az oldalt. A kezdeti rendszerkép lekérése után a későbbi tesztek sokkal gyorsabban fognak futni.
Diagnosztikai naplók elérése
Miközben arra vár, hogy az App Service lekérje a képet, hasznos lehet pontosan látni, hogy az App Service mit csinál a tárolónaplók terminálba való streamelésével.
A tárolónaplózás bekapcsolása:
az webapp log config --name <app-name> --resource-group msdocs-custom-container-tutorial --docker-container-logging filesystemA naplóstream engedélyezése:
az webapp log tail --name <app-name> --resource-group msdocs-custom-container-tutorialHa nem jelennek meg azonnal a konzolnaplófájlok, ellenőrizze ismét 30 másodperc múlva.
A naplófájlokat a böngészőből is megvizsgálhatja a következő lépéssel: .>
Ha bármikor le szeretné állítani a naplóstreamelést, válassza a Ctrl+C billentyűkombinációt.
Az alkalmazáskód módosítása és ismételt üzembe helyezés
Ebben a szakaszban módosítja a webalkalmazás kódját, újraépíti a lemezképet, majd leküldi azt a tárolóregisztrációs adatbázisba. Az App Service ezután automatikusan lekéri a frissített lemezképet a beállításjegyzékből a futó webalkalmazás frissítéséhez.
A helyi docker-django-webapp-linux mappában nyissa meg a fájlt app/templates/app/index.html.
Módosítsa az első HTML-elemet a következő kódnak megfelelőre.
<nav class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <a class="navbar-brand" href="#">Azure App Service - Updated Here!</a> </div> </div> </nav>Mentse a módosításokat.
Nyissa meg a docker-django-webapp-linux mappát, és építse újra a képet:
docker build --tag appsvc-tutorial-custom-image .Frissítse a kép címkéjét a következőre
latest:docker tag appsvc-tutorial-custom-image <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latestCserélje le a
<registry-name>elemet a tárolójegyzék nevére.A rendszerkép leküldése a beállításjegyzékbe:
docker push <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latestHa a kép leküldése befejeződött, a webhook értesíti az App Service-t a leküldésről, és az App Service megpróbálja lekérni a frissített képet. Várjon néhány percet, majd a következő lépéssel
https://<app-name>.azurewebsites.netellenőrizze, hogy a frissítés telepítve van-e.
Csatlakozás a tárolóhoz SSH használatával
Az SSH továbbfejlesztett biztonsági kommunikációt tesz lehetővé egy tároló és egy ügyfél között. A tárolóhoz való SSH-kapcsolat engedélyezéséhez konfigurálnia kell az egyéni rendszerképet. Amikor a tároló fut, megnyithat egy SSH-kapcsolatot.
A tároló konfigurálása SSH-hoz
Az oktatóanyagban használt mintaalkalmazás már rendelkezik a dockerfile szükséges konfigurációjával, amely telepíti az SSH-kiszolgálót, és beállítja a bejelentkezési hitelesítő adatokat is. Ez a szakasz csak tájékoztató jellegű. A tárolóhoz való csatlakozáshoz ugorjon a következő szakaszra.
ENV SSH_PASSWD "root:Docker!"
RUN apt-get update \
&& apt-get install -y --no-install-recommends dialog \
&& apt-get update \
&& apt-get install -y --no-install-recommends openssh-server \
&& echo "$SSH_PASSWD" | chpasswd
Feljegyzés
Ez a konfiguráció nem teszi lehetővé a tároló külső kapcsolatait. Az SSH csak a Kudu/SCM webhelyen keresztül érhető el. A Kudu/SCM-webhely hitelesítése az Azure-fiókjával történik.
root:Docker! SSH használata esetén nem kell módosítani. Az SCM/KUDU az Azure Portal hitelesítő adatait használja. Ha ezt az értéket módosítja, az SSH használatakor hiba lép fel.
A Dockerfile a sshd_config fájlt is átmásolja az /etc/ssh/ mappába, és elérhetővé teszi a 2222-s portot a tárolón:
COPY sshd_config /etc/ssh/
# ...
EXPOSE 8000 2222
A 2222-s port egy belső port, amelyet csak a magánhálózat hídhálózatán belüli tárolók érhetnek el.
Végül a init.sh bejegyzésszkript elindítja az SSH-kiszolgálót.
#!/bin/bash
service ssh start
Az SSH-kapcsolat megnyitása a tárolóval
Nyissa meg
https://<app-name>.scm.azurewebsites.net/webssh/hostés jelentkezzen be az Azure-fiókjával. A<app-name>rész helyére a webalkalmazás nevét írja be.Amikor bejelentkezik, a rendszer átirányítja a webalkalmazás információs lapjára. Válassza az SSH-t a lap tetején a rendszerhéj megnyitásához és a parancsok használatához.
A parancs használatával
toppéldául megvizsgálhatja az alkalmazásban futó folyamatokat.
Az erőforrások eltávolítása
A cikkben létrehozott erőforrások folyamatos költségekkel járhatnak. Az erőforrások törléséhez csak az őket tartalmazó erőforráscsoportot kell törölnie:
az group delete --name msdocs-custom-container-tutorial
Következő lépések
Az alábbiak elvégzését ismerte meg:
- Egyéni rendszerkép üzembe helyezése privát tárolóregisztrációs adatbázisban.
- Helyezze üzembe az egyéni rendszerképet az App Service-ben.
- Frissítse és telepítse újra a rendszerképet.
- Diagnosztikai naplók elérése.
- Csatlakozzon a tárolóhoz SSH használatával.
- Egyéni Docker-rendszerkép leküldése a Container Registrybe.
- Helyezze üzembe az egyéni rendszerképet az App Service-ben.
- Környezeti változók konfigurálása.
- A rendszerkép lekérése az App Service-be felügyelt identitás használatával.
- Diagnosztikai naplók elérése.
- Engedélyezze a CI/CD-t a Container Registryből az App Service-be.
- Csatlakozzon a tárolóhoz SSH használatával.
Lépjen a következő oktatóanyagra:
Vagy tekintse meg a többi erőforrást: