Tworzenie i wypychanie obrazów platformy Docker do usługi Azure Container Registry przy użyciu języka YAML platformy Docker
Azure DevOps Services
W tym samouczku pokazano, jak używać potoku opartego na szablonie platformy Docker usługi Azure Pipelines, aby utworzyć konteneryzowaną aplikację i wypchnąć ją do usługi Azure Container Registry. Szablon konfiguruje potok YAML ciągłej integracji, w którym zmiany nowego repozytorium kodu wyzwalają potok w celu skompilowania i opublikowania zaktualizowanych obrazów platformy Docker w rejestrze.
Potok szablonu kontenera platformy Docker używa agentów hostowanych przez firmę Microsoft i tworzy połączenie usługi oparte na jednostce usługi z usługą Azure Container Registry. Aby zapoznać się z potokiem, który wykonuje podobny proces przy użyciu własnych agentów i utworzonego przez Ciebie połączenia z usługą, zobacz Kompilowanie i wypychanie obrazów platformy Docker do usługi Azure Container Registry.
Wymagania wstępne
Konto platformy Azure, na którym masz uprawnienia do tworzenia i konfigurowania zasobów. Jeśli nie masz konta platformy Azure, utwórz bezpłatne konto.
Organizacja i projekt usługi Azure DevOps, w którym masz uprawnienia do tworzenia potoków i wdrażania aplikacji. Aby utworzyć organizację lub projekt, zobacz Tworzenie nowej organizacji lub Tworzenie projektu w usłudze Azure DevOps.
Konto usługi GitHub.
Ważne
W przypadku korzystania z usługi GitHub w poniższych procedurach może zostać wyświetlony monit o utworzenie połączenia usługi GitHub, zalogowanie się do usługi GitHub, uwierzytelnianie w organizacjach usługi GitHub, zainstalowanie usługi Azure Pipelines lub autoryzowanie usługi Azure Pipelines. Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby ukończyć proces. Aby uzyskać więcej informacji, zobacz Access to GitHub repozytoria.
Pobieranie przykładowej aplikacji
W usłudze GitHub rozwidlenie lub sklonuj repozytorium aplikacji Przykładowe platformy Docker i Kubernetes Node.JS.
Tworzenie rejestru kontenerów
W witrynie Azure Portal zaloguj się do usługi Azure Cloud Shell, wybierając ikonę na górnym pasku menu. Upewnij się, że używasz powłoki Bash .
W usłudze Cloud Shell uruchom następujące polecenia, aby utworzyć grupę zasobów i rejestr kontenerów platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure. Nazwa rejestru kontenerów musi mieć małe litery.
az group create --name myapp-rg --location eastus az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
Aby wdrożyć obraz platformy Docker w rejestrze kontenerów platformy Azure, musisz włączyć konto użytkownika administratora dla rejestru, które jest domyślnie wyłączone. Aby włączyć użytkownika administratora dla rejestru, użyj
--admin-enabled
parametru z poleceniemaz acr update
. Aby uzyskać więcej informacji i instrukcji, zobacz Konto administratora.az acr update -n <acrName> --admin-enabled true
Alternatywnie możesz użyć interfejsu użytkownika witryny Azure Portal do utworzenia rejestru kontenerów platformy Azure. Aby uzyskać instrukcje, zobacz Tworzenie rejestru kontenerów. Włącz konto administratora we właściwościach po utworzeniu rejestru.
Tworzenie potoku
W projekcie usługi Azure DevOps wybierz pozycję Potoki>Nowy potok lub Utwórz potok, jeśli ten potok jest pierwszym w projekcie.
Wybierz pozycję GitHub jako lokalizację kodu źródłowego.
Na ekranie Wybieranie repozytorium wybierz przykładowe repozytorium kodu.
Na ekranie Konfigurowanie potoku wybierz pozycję Docker: Build and push an image to Azure Container Registry pipeline (Konfigurowanie potoku: kompilowanie i wypychanie obrazu do potoku usługi Azure Container Registry).
Na ekranie platformy Docker wybierz subskrypcję platformy Azure, a następnie wybierz pozycję Kontynuuj.
Wybierz rejestr kontenerów z menu rozwijanego, podaj nazwę obrazu, a następnie wybierz pozycję Zweryfikuj i skonfiguruj.
Usługa Azure Pipelines generuje plik azure-pipelines.yml definiujący potok.
Przejrzyj kod w azure-pipelines.yml, a następnie wybierz pozycję Zapisz i uruchom.
Opcjonalnie zmodyfikuj komunikat Commit (Zatwierdzenie) i podaj opis. Następnie wybierz pozycję Zapisz i uruchom ponownie, aby zatwierdzić plik azure-pipelines.yml w repozytorium i uruchomić kompilację.
Strona uruchamiania kompilacji zawiera szczegóły kompilacji i postęp. Aby obejrzeć potok w akcji, wybierz pozycję Kompiluj w obszarze Zadania.
Szczegóły potoku
Potok jest generowany na podstawie szablonu kontenera platformy Docker. Etap kompilacji używa zadania platformy Docker w wersji 2 do kompilowania i wypychania obrazu platformy Docker do rejestru kontenerów.
Zadanie platformy Docker używa połączenia usługi rejestru platformy Docker z uwierzytelnianiem jednostki usługi, aby umożliwić potokowi wypychanie obrazów do rejestru kontenerów. Szablon kontenera platformy Docker generuje to połączenie usługi podczas tworzenia potoku.
- stage: Build
displayName: Build and push stage
jobs:
- job: Build
displayName: Build job
pool:
vmImage: $(vmImageName)
steps:
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: $(imageRepository)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)
Czyszczenie zasobów
Po zakończeniu korzystania z zasobów utworzonych w tym samouczku możesz je usunąć, aby uniknąć naliczania dodatkowych opłat. Uruchom następujące polecenie usługi Cloud Shell, aby usunąć grupę zasobów i wszystkie zawarte w niej zasoby.
az group delete --name myapp-rg