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 w repozytorium kodu wyzwalają potok do skompilowania i opublikowania zaktualizowanych obrazów Dockera w rejestrze.
Ciąg szablonów kontenerów Docker używa agentów hostowanych przez firmę Microsoft i tworzy połączenie z Azure Container Registry na podstawie jednostkowych uprawnień serwisowych. 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 Dostęp do repozytoriów GitHub.
Pobieranie przykładowej aplikacji
W usłudze GitHub, zaforkuj lub sklonuj repozytorium Przykładowej aplikacji Node.JS opartej na Dockerze i Kubernetesie.
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 Docker w rejestrze kontenerów Azure, musisz włączyć konto użytkownika administratora dla rejestru, które jest domyślnie wyłączone. Aby włączyć konto administracyjne dla rejestru, użyj parametru
--admin-enabled
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.
Utwórz potok
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 zatwierdzenia i dodaj 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ć pipeline w działaniu, wybierz pozycję Kompiluj w obszarze Zadania.
Szczegóły rurociągu
Pipeline jest generowany z szablonu Docker container. Etap kompilacji używa zadania Docker v2 do budowania i wypchnięcia obrazu Docker do rejestru kontenerów.
Zadanie Docker używa serwisowego połączenia rejestru Docker z uwierzytelnianiem za pomocą jednostki głównej usługi, aby umożliwić potokowi przesyłanie obrazów do twojego rejestru kontenerów. Szablon kontenera 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