Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Usando o Azure Pipelines, você pode criar, testar e implantar automaticamente seu aplicativo Web em um contêiner de Aplicativo Web do Serviço de Aplicativo do Azure no Linux. Neste artigo, você aprenderá a usar pipelines YAML ou Clássico para:
- Crie e publique uma imagem do Docker no Registro de Contêiner do Azure.
- Crie um aplicativo Web do Azure.
- Implantar um contêiner no Serviço de Aplicativo do Azure.
- Implantar em slots de implantação.
Pré-requisitos
| Produto | Requisitos |
|---|---|
| Azure DevOps | – Uma organização e um projeto do Azure DevOps.
Crie um gratuitamente. - Permissões: – Para conceder acesso a todos os pipelines no projeto: você deve ser membro do grupo Administradores do Projeto. – Para criar conexões de serviço: você deve ter a função Administrador ou Criador para conexões de serviço. – Capacidade de executar pipelines em agentes hospedados pela Microsoft. Você pode comprar um trabalho paralelo ou solicitar uma camada gratuita. |
| GitHub | - Uma conta do GitHub . |
| Azul | - Um Registro de Contêiner do Azure. Criar um registro de contêiner do Azure se você ainda não tiver um. |
Obter o código
Faça um fork do seguinte aplicativo de amostra no GitHub.
https://github.com/spring-guides/gs-spring-boot-docker.git
Criar e publicar uma imagem do Docker no Registro de Contêiner do Azure
Para concluir esta seção com êxito, você deve ter um Registro de Contêiner do Azure. Confira a seção Pré-requisitos para detalhes.
Entre na sua organização do Azure DevOps e navegue até seu projeto.
Selecione Pipelines e Novo Pipeline.
Selecione GitHub quando solicitado o local do código-fonte e selecione o repositório.
Selecione o modelo de pipeline Docker: criar e enviar uma imagem para Azure Container Registry.
Selecione sua Assinatura do Azure e escolha Continuar.
Selecione o Registro de contêiner no menu suspenso e, em seguida, selecione Validar e configurar.
Examine o modelo YAML do pipeline e selecione Salvar e executar para compilar e publicar a imagem do Docker no Registro de Contêiner do Azure.
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)Para exibir a imagem publicada do Docker após a conclusão da execução do pipeline, acesse o registro de contêiner no portal do Azure e selecione Repositórios.
Para implantar a imagem do registro de contêiner, habilite a conta de usuário do administrador. Vá para o registro de contêiner no portal do Azure e selecione chaves do Access. Em seguida, selecione o botão de alternância para habilitar o usuário administrador.
Criar um aplicativo Web
Vá para o portal do Azure.
Selecione Criar um recurso>Contêineres e escolha Aplicativo Web de Contêineres.
Insira um nome para seu novo aplicativo Web e crie um novo grupo de recursos. Selecione Linux como Sistema Operacional.
Na seção Planos de preços , selecione o plano F1 Gratuito.
Selecione Examinar e criar. Examine sua configuração e selecione Criar quando terminar.
Implantar o aplicativo Web para contêineres
Neste YAML, você cria e envia por push uma imagem do Docker para um registro de contêiner e, em seguida, implanta-a no Aplicativo Web do Azure para Contêineres. No estágio Compilar, você cria e envia por push uma imagem do Docker para um Registro de Contêiner do Azure com a tarefa Docker@2. A tarefa AzureWebAppContainer@1 implanta a imagem no Aplicativo Web para Contêineres.
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)
Implantar em um slot de implantação
Configure o contêiner do Aplicativo Web do Azure para ter vários slots. Os slots permitem implantar seu aplicativo com segurança e testá-lo antes de disponibilizá-lo para seus clientes. Saiba mais em Criar ambientes de preparo.
O trecho de código YAML a seguir mostra como implantar em um slot de preparo e, em seguida, alternar para um slot de produção:
- 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
perguntas frequentes
P: Como posso encontrar minhas credenciais do Registro do Docker?
R: Acesse o portal do Azure e selecione seu Aplicativo Web para Contêineres. Selecione Configuração>as configurações do Aplicativo, e então selecione mostrar o valor.