Criar um aplicativo multicontêiner (versão prévia) usando uma configuração do Docker Compose
Observação
Os contêineres sidecar (versão prévia) terão sucesso em aplicativos de vários contêineres no Serviço de Aplicativo. Para começar, confira Tutorial: configurar um contêiner sidecar para contêiner personalizado no Serviço de Aplicativo do Azure (versão prévia).
O Aplicativo Web para Contêineres fornece uma maneira flexível de usar imagens do Docker. Este guia de início rápido mostra como implantar um aplicativo multicontêiner (versão prévia) para o Aplicativo Web para Contêineres no Cloud Shell usando uma configuração do Docker Compose.
Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
Este artigo exige a versão 2.0.32 ou posterior da CLI do Azure. Se você está usando o Azure Cloud Shell, a versão mais recente já está instalada.
Baixar o exemplo
Para este início rápido, use o arquivo de composição do Docker. O arquivo de configuração podem ser localizados em Exemplos do Azure.
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
No Cloud Shell, crie um diretório de início rápido e depois altere-o.
mkdir quickstart
cd $HOME/quickstart
Em seguida, execute o comando a seguir para clonar o repositório de aplicativos de exemplo ao seu diretório de início rápido. Em seguida, altere para o diretório multicontainerwordpress
.
git clone https://github.com/Azure-Samples/multicontainerwordpress
cd multicontainerwordpress
Criar um grupo de recursos
Um grupo de recursos é um contêiner lógico no qual os recursos do Azure, como aplicativos Web, bancos de dados e contas de armazenamento, são implantados e gerenciados. Por exemplo, é possível excluir posteriormente todo o grupo de recursos com uma única etapa simples.
No Cloud Shell, crie um grupo de recursos com o comando az group create
. O exemplo a seguir cria um grupo de recursos nomeado myResourceGroup no localização Centro-Sul dos EUA. Para ver todas as localizações com suporte no Serviço de Aplicativo no Linux na camada Standard, execute o comando az appservice list-locations --sku S1 --linux-workers-enabled
.
az group create --name myResourceGroup --location "South Central US"
Em geral, você cria seu grupo de recursos e os recursos em uma região próxima a você.
Quando o comando for concluído, uma saída JSON mostra as propriedades do grupo de recursos.
Criar um Plano do Serviço de Aplicativo do Azure
No Cloud Shell, crie um plano do Serviço de Aplicativo no grupo de recursos com o comando az appservice plan create
.
O exemplo a seguir cria um plano do Serviço de Aplicativo denominado myAppServicePlan
no tipo de preço Standard (--sku S1
) e em um contêiner do Linux (--is-linux
).
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku S1 --is-linux
Quando o Plano do Serviço de Aplicativo for criado, a CLI do Azure mostrará informações semelhantes ao exemplo a seguir:
{ "adminSiteName": null, "appServicePlanName": "myAppServicePlan", "geoRegion": "South Central US", "hostingEnvironmentProfile": null, "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan", "kind": "linux", "location": "South Central US", "maximumNumberOfWorkers": 1, "name": "myAppServicePlan", < JSON data removed for brevity. > "targetWorkerSizeId": 0, "type": "Microsoft.Web/serverfarms", "workerTierName": null }
Criar um aplicativo Docker Compose
Observação
Atualmente, o Docker Compose nos Serviços de Aplicativo do Azure tem um limite de 4.000 caracteres quando convertido em Base64.
Em seu terminal do Cloud Shell, crie um aplicativo Web multicontêiner no plano do Serviço de Aplicativo do myAppServicePlan
com o comando az webapp create. Não se esqueça de substituir <nome_do_aplicativo> por um nome de aplicativo exclusivo (os caracteres válidos são a-z
, 0-9
e -
).
az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app_name> --multicontainer-config-type compose --multicontainer-config-file compose-wordpress.yml
Quando o aplicativo Web for criado, a CLI do Azure mostrará um resultado semelhante ao seguinte exemplo:
{ "additionalProperties": {}, "availabilityState": "Normal", "clientAffinityEnabled": true, "clientCertEnabled": false, "cloningInfo": null, "containerSize": 0, "dailyMemoryTimeQuota": 0, "defaultHostName": "<app_name>.azurewebsites.net", "enabled": true, < JSON data removed for brevity. > }
Navegar até o aplicativo
Navegue até o aplicativo implantado em (http://<app_name>.azurewebsites.net
). O aplicativo pode demorar alguns minutos para carregar. Se um erro for exibido, aguarde mais alguns minutos e atualize o navegador.
Parabéns, você criou um aplicativo multicontêiner no Aplicativo Web para Contêineres.
Limpar a implantação
Depois que o script de exemplo foi executado, o comando a seguir pode ser usado para remover o grupo de recursos e todos os recursos associados a ele.
az group delete --name myResourceGroup