Udostępnij za pośrednictwem


Konfigurowanie obrazu kontenera do wykonywania wdrożeń

Z tego artykułu dowiesz się, jak utworzyć niestandardowe obrazy kontenerów w celu wdrożenia definicji środowiska w środowiskach wdrażania platformy Azure (ADE).

Definicja środowiska składa się z co najmniej dwóch plików: pliku szablonu, takiego jak azuredeploy.json, i pliku manifestu o nazwie environment.yaml. Usługa ADE używa kontenerów do wdrażania definicji środowiska i natywnie obsługuje platformy Azure Resource Manager (ARM) i Bicep IaC.

Model rozszerzalności programu ADE umożliwia tworzenie niestandardowych obrazów kontenerów do użycia z definicjami środowiska. Korzystając z modelu rozszerzalności, możesz utworzyć własne niestandardowe obrazy kontenerów i przechowywać je w rejestrze kontenerów, na przykład w usłudze DockerHub. Następnie możesz odwoływać się do tych obrazów w definicjach środowiska w celu wdrożenia środowisk.

Zespół usługi ADE oferuje wybór obrazów, które ułatwiają rozpoczęcie pracy, w tym obraz podstawowy oraz obraz usługi Azure Resource Manager (ARM)/Bicep. Dostęp do tych przykładowych obrazów można uzyskać w folderze Runner-Images .

Wymagania wstępne

Używanie obrazów kontenerów z usługą ADE

Możesz użyć jednego z następujących metod używania obrazów kontenerów z usługą ADE:

  • Użyj standardowego obrazu kontenera: w przypadku prostych scenariuszy użyj standardowego obrazu kontenera Bicep dostarczonego przez usługę ADE.
  • Tworzenie niestandardowego obrazu kontenera: w przypadku bardziej złożonych scenariuszy utwórz niestandardowy obraz kontenera spełniający określone wymagania.

Niezależnie od wybranego podejścia należy określić obraz kontenera w definicji środowiska, aby wdrożyć zasoby platformy Azure.

Używanie obrazu standardowego

Usługa ADE obsługuje natywnie Bicep, dzięki czemu można skonfigurować definicję środowiska, która wdraża zasoby platformy Azure dla środowiska wdrażania, dodając pliki szablonów (azuredeploy.json i environment.yaml) do katalogu. Usługa ADE używa następnie standardowego obrazu kontenera Bicep do utworzenia środowiska wdrażania.

W pliku environment.yaml właściwość modułu uruchamiającego określa lokalizację obrazu kontenera, którego chcesz użyć. Aby użyć przykładowego obrazu opublikowanego na Rejestr Artefaktów Microsoft, użyj odpowiedniego modułu uruchamiającego identyfikatory, jak pokazano w poniższej tabeli.

W poniższym przykładzie pokazano moduł uruchamiający, który odwołuje się do przykładowego obrazu kontenera Bicep:

    name: WebApp
    version: 1.0.0
    summary: Azure Web App Environment
    description: Deploys a web app in Azure without a datastore
    runner: Bicep
    templatePath: azuredeploy.json

Standardowy obraz kontenera Bicep można wyświetlić w repozytorium przykładowym usługi ADE w folderze Runner-Images dla obrazu ARM-Bicep .

Aby uzyskać więcej informacji na temat tworzenia definicji środowiska, które używają obrazów kontenera ADE do wdrażania zasobów platformy Azure, zobacz Dodawanie i konfigurowanie definicji środowiska.

Tworzenie niestandardowego obrazu kontenera

Utworzenie niestandardowego obrazu kontenera umożliwia dostosowanie wdrożeń do własnych wymagań. Obrazy niestandardowe można tworzyć na podstawie standardowych obrazów kontenerów usługi ADE.

Po zakończeniu dostosowywania obrazu należy skompilować obraz i wypchnąć go do rejestru kontenerów.

Tworzenie i dostosowywanie obrazu kontenera za pomocą platformy Docker

W tym przykładzie dowiesz się, jak utworzyć obraz platformy Docker w celu korzystania z wdrożeń usługi ADE i uzyskać dostęp do interfejsu wiersza polecenia programu ADE, korzystając z obrazu na jednym z obrazów utworzonych przez program ADE.

Interfejs wiersza polecenia programu ADE to narzędzie, które umożliwia tworzenie obrazów niestandardowych przy użyciu obrazów podstawowych programu ADE. Za pomocą interfejsu wiersza polecenia programu ADE można dostosować wdrożenia i usunięcia, aby dopasować je do przepływu pracy. Interfejs wiersza polecenia programu ADE jest wstępnie zainstalowany na przykładowych obrazach. Aby dowiedzieć się więcej na temat interfejsu wiersza polecenia programu ADE, zobacz dokumentację niestandardowego modułu uruchamiającego interfejs wiersza polecenia.

Aby utworzyć obraz skonfigurowany dla usługi ADE, wykonaj następujące kroki:

  1. Utwórz obraz na przykładowym obrazie utworzonym przez program ADE lub wybranym obrazie przy użyciu instrukcji FROM.
  2. Zainstaluj wszelkie niezbędne pakiety dla obrazu przy użyciu instrukcji RUN.
  3. Utwórz folder scripts na tym samym poziomie co plik Dockerfile, zapisz w nim pliki deploy.sh i delete.sh oraz upewnij się, że te skrypty są wykrywalne i wykonywalne w utworzonym kontenerze. Ten krok jest niezbędny do pracy wdrożenia przy użyciu obrazu podstawowego usługi ADE.

Wybieranie przykładowego obrazu kontenera przy użyciu instrukcji FROM

Aby utworzyć obraz platformy Docker w celu korzystania z wdrożeń usługi ADE i uzyskiwania dostępu do interfejsu wiersza polecenia programu ADE, należy oprzeć obraz na jednym z obrazów utworzonych przez program ADE. Dołączenie instrukcji FROM w utworzonym pliku DockerFile dla nowego obrazu wskazującego przykładowy obraz utworzony przez program ADE hostowany na Rejestr Artefaktów Microsoft. W przypadku korzystania z obrazów utworzonych przez program ADE należy oprzeć niestandardowy obraz na obrazie podstawowym programu ADE.

Oto przykładowa instrukcja FROM, odwołując się do przykładowego obrazu podstawowego:

FROM mcr.microsoft.com/deployment-environments/runners/core:latest

Ta instrukcja ściąga ostatnio opublikowany obraz podstawowy i sprawia, że stanowi podstawę dla niestandardowego obrazu.

Instalowanie pakietów na obrazie

Pakiety można zainstalować za pomocą interfejsu wiersza polecenia platformy Azure przy użyciu instrukcji RUN, jak pokazano w poniższym przykładzie:

RUN az bicep install

Przykładowe obrazy usługi ADE są oparte na obrazie interfejsu wiersza polecenia platformy Azure i mają wstępnie zainstalowane pakiety JQ i interfejsu wiersza polecenia programu ADE. Możesz dowiedzieć się więcej na temat interfejsu wiersza polecenia platformy Azure i pakietu JQ.

Aby zainstalować więcej pakietów potrzebnych na obrazie, użyj instrukcji RUN.

Wykonywanie skryptów powłoki operacji

W przykładowych obrazach operacje są określane i wykonywane na podstawie nazwy operacji. Obecnie dwie obsługiwane nazwy operacji są wdrażane i usuwane.

Aby skonfigurować obraz niestandardowy do korzystania z tej struktury, określ folder na poziomie pliku Dockerfile o nazwie scripts i określ dwa pliki, deploy.sh i delete.sh. Skrypt powłoki wdrażania jest uruchamiany po utworzeniu lub ponownym wdrożeniu środowiska, a skrypt powłoki usuwania jest uruchamiany po usunięciu środowiska. Przykłady skryptów powłoki można zobaczyć w repozytorium w obszarze obrazu folderu Runner-Images.

Aby upewnić się, że te skrypty powłoki są wykonywalne, dodaj następujące wiersze do pliku Dockerfile:

COPY scripts/* /scripts/
RUN find /scripts/ -type f -iname "*.sh" -exec dos2unix '{}' '+'
RUN find /scripts/ -type f -iname "*.sh" -exec chmod +x {} \;

Udostępnianie obrazu niestandardowego usłudze ADE

Musisz skompilować obraz platformy Docker i wypchnąć go do rejestru kontenerów, aby udostępnić go do użycia w usłudze ADE. Obraz można utworzyć przy użyciu interfejsu wiersza polecenia platformy Docker lub skryptu dostarczonego przez usługę ADE.

Wybierz odpowiednią kartę, aby dowiedzieć się więcej o każdym podejściu.

Przed skompilowanie obrazu, który ma zostać wypchnięty do rejestru, upewnij się, że aparat platformy Docker jest zainstalowany na komputerze. Następnie przejdź do katalogu pliku Dockerfile i uruchom następujące polecenie:

docker build . -t {YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}

Jeśli na przykład chcesz zapisać obraz w repozytorium w rejestrze o nazwie customImage, i przekazać go przy użyciu wersji tagu 1.0.0, uruchom następujące polecenie:

docker build . -t {YOUR_REGISTRY}.azurecr.io/customImage:1.0.0

Wypychanie obrazu do rejestru

Aby używać obrazów niestandardowych, należy skonfigurować publicznie dostępny rejestr obrazów z włączonym ściąganiem obrazu anonimowego. Dzięki temu środowiska wdrażania platformy Azure mogą uzyskiwać dostęp do niestandardowego obrazu do wykonania w naszym kontenerze.

Usługa Azure Container Registry to oferta platformy Azure, która przechowuje obrazy kontenerów i podobne artefakty.

Aby utworzyć rejestr, który można wykonać za pomocą interfejsu wiersza polecenia platformy Azure, witryny Azure Portal, poleceń programu PowerShell i nie tylko, postępuj zgodnie z jednym z przewodników Szybki start.

Aby skonfigurować rejestr w celu włączenia ściągania anonimowego obrazu, uruchom następujące polecenia w interfejsie wiersza polecenia platformy Azure:

az login
az acr login -n {YOUR_REGISTRY}
az acr update -n {YOUR_REGISTRY} --public-network-enabled true
az acr update -n {YOUR_REGISTRY} --anonymous-pull-enabled true

Gdy wszystko będzie gotowe do wypchnięcia obrazu do rejestru, uruchom następujące polecenie:

docker push {YOUR_REGISTRY}.azurecr.io/{YOUR_IMAGE_LOCATION}:{YOUR_TAG}

Połączenie obrazu do definicji środowiska

Podczas tworzenia definicji środowiska do używania obrazu niestandardowego we wdrożeniu edytuj runner właściwość w pliku manifestu (environment.yaml lub manifest.yaml).

runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}"

Uzyskiwanie dostępu do dzienników operacji i szczegółów błędu

Program ADE przechowuje szczegóły błędu dla nieudanego wdrożenia w pliku $ADE_ERROR_LOG w kontenerze.

Aby rozwiązać problemy z nieudanym wdrożeniem:

  1. Zaloguj się do portalu deweloperów.

  2. Zidentyfikuj środowisko, które nie powiodło się, i wybierz pozycję Zobacz szczegóły.

    Zrzut ekranu przedstawiający szczegóły błędu wdrażania, w szczególności nieprawidłową nazwę konta magazynu.

  3. Przejrzyj szczegóły błędu w sekcji Szczegóły błędu.

    Zrzut ekranu przedstawiający nieudane wdrożenie środowiska z wyświetlonym przyciskiem Zobacz szczegóły.

Ponadto możesz użyć interfejsu wiersza polecenia platformy Azure, aby wyświetlić szczegóły błędu środowiska przy użyciu następującego polecenia:

az devcenter dev environment show --environment-name {YOUR_ENVIRONMENT_NAME} --project {YOUR_PROJECT_NAME}

Aby wyświetlić dzienniki operacji wdrożenia lub usunięcia środowiska, użyj interfejsu wiersza polecenia platformy Azure, aby pobrać najnowszą operację dla środowiska, a następnie wyświetlić dzienniki dla tego identyfikatora operacji.

# Get list of operations on the environment, choose the latest operation
az devcenter dev environment list-operation --environment-name {YOUR_ENVIRONMENT_NAME} --project {YOUR_PROJECT_NAME}
# Using the latest operation ID, view the operation logs
az devcenter dev environment show-logs-by-operation --environment-name {YOUR_ENVIRONMENT_NAME} --project {YOUR_PROJECT_NAME} --operation-id {LATEST_OPERATION_ID}