Kompilowanie i wypychanie obrazów platformy Docker do usługi Azure Container Registry przy użyciu szablonów platformy Docker

Azure DevOps Services

W tym samouczku krok po kroku dowiesz się, jak skonfigurować potok ciągłej integracji w celu utworzenia konteneryzowanej aplikacji. Nowe żądania ściągnięcia wyzwalają potok w celu kompilowania i publikowania obrazów platformy Docker w usłudze Azure Container Registry.

Wymagania wstępne

Uzyskiwanie kodu

Rozwidlenie lub sklonowanie przykładowej aplikacji pipeline-javascript-docker :

https://github.com/MicrosoftDocs/pipelines-javascript-docker

Tworzenie rejestru kontenerów

  1. Zaloguj się do platformy Azure, a następnie wybierz przycisk Azure Cloud Shell w prawym górnym rogu.

    Azure Cloud Shell button

  2. Uruchom następujące polecenia, aby utworzyć grupę zasobów i usługę Azure Container Registry przy użyciu interfejsu wiersza polecenia platformy Azure.

    # Create a resource group
    az group create --name myapp-rg --location eastus
    
    # Create a container registry
    az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
    

Uwaga

Nazwa rejestru kontenerów musi mieć małe litery.

Do utworzenia usługi Azure Container Registry można również użyć internetowego interfejsu użytkownika witryny Azure Portal. Aby uzyskać szczegółowe informacje, zobacz Tworzenie rejestru kontenerów.

Ważne

Aby wdrożyć obraz platformy Docker z usługi Azure Container Registry, musisz włączyć konto użytkownika administratora. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie rejestru kontenerów.

Tworzenie potoku

  1. Zaloguj się do organizacji usługi Azure DevOps i przejdź do projektu.

  2. Wybierz pozycję Potoki, a następnie wybierz pozycję Nowy potok , aby utworzyć nowy potok.

    Create a new pipeline

  3. Wybierz pozycję GitHub YAML, a następnie wybierz pozycję Autoryzuj usługę Azure Pipelines , aby zapewnić odpowiednie uprawnienia dostępu do repozytorium.

  4. Może zostać wyświetlony monit o zalogowanie się do usługi GitHub. Jeśli tak, wprowadź swoje poświadczenia usługi GitHub, a następnie wybierz repozytorium z listy repozytoriów.

  5. Na karcie Konfigurowanie wybierz zadanie Docker - Build and push an image to Azure Container Registry (Konfigurowanie — kompilowanie i wypychanie obrazu do usługi Azure Container Registry).

    Build and push Docker images to Azure Container Registry

  6. Wybierz subskrypcję platformy Azure, a następnie wybierz pozycję Kontynuuj.

  7. Wybierz rejestr kontenerów z menu rozwijanego, a następnie podaj nazwę obrazu do obrazu kontenera.

  8. Po zakończeniu wybierz pozycję Zweryfikuj i skonfiguruj .

    A screenshot showing how to configure a docker pipeline to build and publish an image to Azure Container Registry

    W miarę tworzenia potoku przez usługę Azure Pipelines:

    • Utwórz połączenie usługi rejestru platformy Docker, aby umożliwić potokowi wypychanie obrazów do rejestru kontenerów.

    • Wygeneruj plik azure-pipelines.yml , który definiuje potok.

  9. Przejrzyj potok YAML, a następnie wybierz pozycję Zapisz i uruchom , gdy wszystko będzie gotowe.

    Review your pipeline, save & run

  10. Dodaj komunikat Commit (Zatwierdzenie), a następnie wybierz pozycję Save and run (Zapisz i uruchom), aby zatwierdzić zmiany i uruchomić potok.

  11. W miarę uruchamiania potoku wybierz zadanie kompilacji, aby obserwować działanie potoku.

    Monitor builds

Jak tworzymy potok

Potok utworzony w poprzedniej sekcji został wygenerowany na podstawie szablonu kontenera platformy Docker YAML. Etap kompilacji używa zadaniaDocker@2 platformy Docker do kompilowania i wypychania obrazu platformy Docker do rejestru kontenerów.

- 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

Jeśli nie zamierzasz nadal korzystać z tej aplikacji, możesz usunąć zasoby utworzone w tym samouczku, aby uniknąć naliczania bieżących opłat. Uruchom następujące polecenie, aby usunąć grupę zasobów.

az group delete --name myapp-rg