Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo é a parte 3 de uma série de tutoriais em 5 partes sobre a containerização e implementação de uma aplicação web Python para o Serviço de Aplicações do Azure. Na parte 2, construías e executavas a imagem do contentor localmente. Neste artigo, constróis a mesma aplicação web Python diretamente em Azure Container Registry sem instalar o Docker localmente. Construir a imagem no Azure é normalmente mais rápido e fácil do que construir localmente e depois enviá-la para um registo. A construção de imagens baseada na cloud também elimina a necessidade de o Docker estar a correr no seu ambiente de desenvolvimento.
O Serviço de Aplicativo do Azure permite implantar e executar aplicativos Web em contêineres usando pipelines de CI/CD de plataformas como o Docker Hub, o Registro de Contêiner do Azure e o Azure DevOps. Depois de a imagem Docker estar no Azure Container Registry, pode implementá-la no Serviço de Aplicações do Azure.
Pré-requisitos
Antes de começar, certifique-se de que completou a parte 2 desta série de tutoriais, que cobre:
- Clonar o repositório de amostras (Django ou Flask).
- Criar um grupo de recursos para recursos do Azure.
- Estou a correr a aplicação containerizada localmente para verificar se funciona.
Você também precisa:
- Uma assinatura ativa do Azure. Se não tiveres, cria uma conta gratuita.
- CLI do Azure instalada localmente (para os passos da CLI do Azure) ou acesso ao Azure Cloud Shell.
- Visual Studio Code com a extensão Docker instalada (para os passos do VS Code).
Importante
O Dockerfile de exemplo utiliza python:3.8-slim como imagem de base.
Python 3.8 atingiu o fim de vida em outubro de 2024 e já não recebe atualizações de segurança. Atualize o seu Dockerfile para usar python:3.12-slim ou python:3.13-slim para implementações em produção.
Este diagrama de serviço destaca os componentes abordados neste artigo.
Criar um Registro de Contêiner do Azure
Se já tem um Azure Container Registry, pule este passo e avance para o passo seguinte. Caso contrário, crie um novo Azure Container Registry usando a CLI do Azure.
Pode executar comandos CLI do Azure no Azure Cloud Shell ou no seu ambiente de desenvolvimento local com o CLI do Azure instalado.
Observação
Use os mesmos nomes que na parte 2 desta série de tutoriais.
Crie um registo de contentores Azure usando o comando az acr create.
#!/bin/bash # Use the resource group that you created in part 2 of this tutorial series. RESOURCE_GROUP_NAME='msdocs-web-app-rg' # REGISTRY_NAME must be unique within Azure and contain 5-50 alphanumeric characters. # If the name is already taken, you'll receive an error. Choose a different name and retry. REGISTRY_NAME='msdocscontainerregistryname' echo "Creating Azure Container Registry $REGISTRY_NAME..." az acr create -g $RESOURCE_GROUP_NAME -n $REGISTRY_NAME --sku StandardNa saída JSON do comando, localize o valor
loginServer. Esse valor representa o nome de registo completo (em minúsculas) e contém o nome do registo.Exemplo de saída:
{ "loginServer": "msdocscontainerregistryname.azurecr.io", "name": "msdocscontainerregistryname", ... }Se estiveres a usar o CLI do Azure na tua máquina local, executa o comando az acr login para iniciar sessão no registo do contentor.
az acr login -n $REGISTRY_NAMEO
-nparâmetro aceita o nome curto do registo (por exemplo,msdocscontainerregistryname) ou o nome totalmente qualificado do registo (msdocscontainerregistryname.azurecr.io). O comando autentica o Docker com o Azure Container Registry usando as suas credenciais CLI do Azure.Resultados esperados:
Login SucceededObservação
Se estiveres a usar Azure Cloud Shell, não precisas de executar o comando
az acr loginporque a tua sessão Cloud Shell trata automaticamente da autenticação.
Criar uma imagem no Registro de Contêiner do Azure
Você pode gerar a imagem de contêiner diretamente no Azure por meio de várias abordagens:
- O Azure Cloud Shell permite-lhe construir a imagem inteiramente na cloud, independentemente do seu ambiente local.
- Em alternativa, podes usar o VS Code ou a CLI do Azure para criar a imagem no Azure a partir da tua configuração local, sem precisar de o Docker estar a correr localmente.
Pode executar comandos CLI do Azure no seu ambiente de desenvolvimento local usando o CLI do Azure instalado ou em Azure Cloud Shell.
Na consola, vai à pasta raiz do teu repositório clonado da parte 2 desta série de tutoriais.
Compile a imagem do contentor utilizando o comando az acr build.
Desenvolvimento local:
az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .Azure Cloud Shell:
Se estiver a usar Azure Cloud Shell, especifique a URL do repositório GitHub em vez do caminho local (
.):# For Django sample: az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-django-container-web-app.git # For Flask sample: az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.gitO argumento final (
.ou o URL do Git) é o contexto de compilação do Docker — o diretório que contém o ficheiro Docker e os ficheiros de aplicação que o Docker usa para construir a imagem.Confirme que a imagem do contentor foi criada usando o comando az acr repository list .
az acr repository list -n $REGISTRY_NAMEResultados esperados:
[ "msdocspythoncontainerwebapp" ]