Wdrażanie niestandardowego kontenera w usłudze aplikacja systemu Azure przy użyciu usługi Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Za pomocą usługi Azure Pipelines można kompilować, testować i automatycznie wdrażać aplikację internetową w kontenerze aplikacji internetowej usługi aplikacja systemu Azure Service w systemie Linux. W tym artykule dowiesz się, jak używać potoków YAML lub klasycznych do:
- Kompilowanie i publikowanie obrazu platformy Docker w usłudze Azure Container Registry
- Tworzenie aplikacji internetowej platformy Azure
- Wdrażanie kontenera w usłudze aplikacja systemu Azure
- Wdrażanie w miejscach wdrożenia
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Konto usługi GitHub. Utwórz bezpłatne konto usługi GitHub, jeśli jeszcze go nie masz.
- Organizacja: Azure DevOps. Utwórz organizację, jeśli jeszcze jej nie masz.
- Usługa Azure Container Registry. Utwórz rejestr kontenerów platformy Azure, jeśli jeszcze go nie masz.
Uzyskiwanie kodu
Rozwidlenie następującej przykładowej aplikacji w usłudze GitHub.
https://github.com/spring-guides/gs-spring-boot-docker.git
Kompilowanie i publikowanie obrazu platformy Docker w usłudze Azure Container Registry
Aby ukończyć tę sekcję pomyślnie, musisz mieć usługę Azure Container Registry. Szczegółowe informacje można znaleźć w sekcji wymagań wstępnych.
Zaloguj się do organizacji usługi Azure DevOps i przejdź do projektu.
Wybierz pozycję Potoki, a następnie pozycję Nowy potok.
Wybierz pozycję GitHub po wyświetleniu monitu o lokalizację kodu źródłowego, a następnie wybierz repozytorium.
Wybierz szablon potoku docker: build and push an image to Azure Container Registry pipeline (Tworzenie i wypychanie obrazu do potoku usługi Azure Container Registry ).
Wybierz subskrypcję platformy Azure, a następnie wybierz pozycję Kontynuuj.
Wybierz rejestr kontenerów z menu rozwijanego, a następnie wybierz pozycję Weryfikuj i skonfiguruj.
Przejrzyj szablon YAML potoku, a następnie wybierz pozycję Zapisz i uruchom , aby skompilować i opublikować obraz platformy Docker w usłudze Azure Container Registry.
trigger: - main resources: - repo: self variables: # Container registry service connection established during pipeline creation dockerRegistryServiceConnection: '{{ containerRegistryConnection.Id }}' imageRepository: 'javascriptdocker' containerRegistry: 'sampleappcontainerregistry.azurecr.io' dockerfilePath: '$(Build.SourcesDirectory)/app/Dockerfile' tag: '$(Build.BuildId)' # Agent VM image name vmImageName: 'ubuntu-latest' stages: - stage: Build displayName: Build and push stage jobs: - job: Build displayName: Build 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)
Aby wyświetlić opublikowany obraz platformy Docker po zakończeniu przebiegu potoku, przejdź do rejestru kontenerów w witrynie Azure Portal, a następnie wybierz pozycję Repozytoria.
Aby wdrożyć obraz z rejestru kontenerów, musisz włączyć konto użytkownika administratora. Przejdź do rejestru kontenerów w witrynie Azure Portal i wybierz pozycję Klucze dostępu. Następnie wybierz przycisk przełącznika, aby włączyć użytkownika administratora.
Tworzenie aplikacji internetowej
Przejdź do witryny Azure Portal.
Wybierz pozycję Utwórz kontenery zasobów>, a następnie wybierz pozycję Web App for Containers.
Wprowadź nazwę nowej aplikacji internetowej i utwórz nową grupę zasobów. Wybierz pozycję Linux dla systemu operacyjnego.
W sekcji Plany cenowe wybierz plan F1 Free.
Wybierz opcję Przejrzyj i utwórz. Przejrzyj konfigurację i wybierz pozycję Utwórz po zakończeniu.
Wdrażanie w usłudze Web App for Containers
W tym języku YAML utworzysz i wypchniesz obraz platformy Docker do rejestru kontenerów, a następnie wdrożysz go w usłudze Azure Web App for Containers. Na etapie kompilacji skompilujesz i wypchniesz obraz platformy Docker do usługi Azure Container Registry za pomocą zadania Docker@2. Zadanie AzureWebAppContainer@1 wdraża obraz w usłudze Web App for Containers.
trigger:
- main
resources:
- repo: self
variables:
## Add this under variables section in the pipeline
azureSubscription: <Name of the Azure subscription>
appName: <Name of the Web App>
containerRegistry: <Name of the Azure container registry>
dockerRegistryServiceConnection: '4fa4efbc-59af-4c0b-8637-1d5bf7f268fc'
imageRepository: <Name of image repository>
dockerfilePath: '$(Build.SourcesDirectory)/Dockerfile'
tag: '$(Build.BuildId)'
vmImageName: 'ubuntu-latest'
stages:
- stage: Build
displayName: Build and push stage
jobs:
- job: Build
displayName: Build
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)
## Add the below snippet at the end of your pipeline
- task: AzureWebAppContainer@1
displayName: 'Azure Web App on Container Deploy'
inputs:
azureSubscription: $(azureSubscription)
appName: $(appName)
containers: $(containerRegistry)/$(imageRepository):$(tag)
Wdrażanie w miejscu wdrożenia
Kontener aplikacji internetowej platformy Azure można skonfigurować tak, aby miał wiele miejsc. Miejsca umożliwiają bezpieczne wdrażanie aplikacji i testowanie jej przed udostępnieniem jej klientom. Aby uzyskać więcej informacji, zobacz Tworzenie środowisk przejściowych .
Poniższy fragment kodu YAML przedstawia sposób wdrażania w miejscu przejściowym, a następnie zamiany na miejsce produkcyjne:
- task: AzureWebAppContainer@1
inputs:
azureSubscription: '<Azure service connection>'
appName: '<Name of the web app>'
containers: $(containerRegistry)/$(imageRepository):$(tag)
deployToSlotOrASE: true
resourceGroupName: '<Name of the resource group>'
slotName: staging
- task: AzureAppServiceManage@0
inputs:
azureSubscription: '<Azure service connection>'
WebAppName: '<name of web app>'
ResourceGroupName: '<name of resource group>'
SourceSlot: staging
SwapWithProduction: true
Często zadawane pytania
.: Jak mogę znaleźć poświadczenia rejestru platformy Docker?
1: Przejdź do witryny Azure Portal, a następnie wybierz swoją aplikację internetową dla kontenerów. Wybierz pozycję Ustawienia aplikacji konfiguracji>, a następnie kliknij, aby wyświetlić wartość.