Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Serviços de DevOps do Azure | 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 do Aplicativo Web do Serviço de Aplicativo do Azure no Linux. Neste artigo, você aprenderá a usar pipelines YAML ou Classic para:
- Crie e publique uma imagem do Docker no Registro de Contêiner do Azure.
- Crie um Aplicativo Web do Azure.
- Implante um contêiner no Serviço de Aplicativo do Azure.
- Implante em slots de implantação.
Pré-requisitos
| Produto | Requisitos |
|---|---|
| Azure DevOps | - Uma organização e um projeto de DevOps do Azure.
Crie um gratuitamente. - Permissões: - Para conceder acesso a todos os pipelines no projeto: Você deve ser membro do grupo Administradores de Projeto. - Para criar conexões de serviço: Você deve ter a função de 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 um nível gratuito. |
| GitHub | - Uma conta GitHub. |
| Azure | - Um Registro de Contêiner do Azure. Crie um registro de contêiner do Azure se ainda não tiver um. |
Obter o código
Fork o seguinte aplicativo de exemplo 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. Consulte a seção de pré-requisitos para obter detalhes.
Entre em sua organização do Azure DevOps e navegue até seu projeto.
Selecione Pipelines e, em seguida , New Pipeline.
Selecione GitHub quando solicitado para o local do seu código-fonte e, em seguida, selecione seu repositório.
Selecione o modelo de pipeline Docker: criar e enviar por push uma imagem para o Registro de Contêiner do Azure.
Selecione sua assinatura do Azure e selecione Continuar.
Selecione seu registro de contêiner no menu suspenso e, em seguida, selecione Validar e configurar.
Revise o modelo YAML de pipeline e selecione Salvar e executar para criar 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 do Docker publicada após a conclusão da execução do pipeline, vá para o registro de contêiner no portal do Azure e selecione Repositórios.
Para implantar a imagem a partir do registro do contêiner, habilite a conta de usuário administrador. Vá para o registro de contêiner no portal do Azure e selecione Chaves de acesso. Em seguida, selecione o botão de alternância para Ativar usuário administrador.
Criar uma Aplicação Web
Aceda ao portal do Azure.
Selecione Criar um recurso>Contêineres e, em seguida, escolha Aplicativo Web para Contêineres.
Insira um nome para seu novo aplicativo Web e crie um novo grupo de recursos. Selecione Linux para o sistema operacional.
Na seção Planos de preços , selecione o plano F1 Free.
Selecione Rever e criar. Reveja a configuração e selecione Criar quando terminar.
Implementar na Aplicação Web para Contentores
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 Compilação, 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 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)
Implantar em um slot de implantação
Configure o contêiner do Aplicativo Web do Azure para ter vários slots. Os slots permitem que você implante seu aplicativo com segurança e teste-o antes de disponibilizá-lo para seus clientes. Saiba mais em Criar ambientes de preparação.
O trecho YAML a seguir mostra como implantar em um slot de preparo e, em seguida, trocar 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
FAQ
P: Como posso encontrar minhas credenciais de registro do Docker?
R: Vá para o portal do Azure e selecione seu Aplicativo Web para Contêineres. Selecione Configurações>do aplicativo e, em seguida, selecione para mostrar o valor.