Use este tipo de implantação para publicar aplicativos a partir de imagens docker armazenadas em uma instância Enterprise Edition do Container Registry (ACR).
Para implantar a partir de uma edição Personal do ACR ou de um repositório de imagens de terceiros, use uma implantação apenas por comando .
Como funciona
Ao implantar em um grupo de dimensionamento do ESS, as atividades de dimensionamento são pausadas durante a implantação. Essas atividades retomam automaticamente após a conclusão da implantação, independentemente do sucesso ou falha.
O processo de implantação interrompe primeiro a versão antiga e depois inicia a nova. Cada execução roda o script de parada antes de executar o script de início.
A imagem docker é baixada automaticamente para a instância Elastic Compute Service (ECS) durante a implantação. Não inclua comandos de pull de imagem no script de início.
-
Crie e publique uma implantação.
Especifique o local do arquivo source do aplicativo no OSS, juntamente com os scripts de início e parada.
Crie uma tarefa de release, selecione um modo de release e publique a implantação no grupo de aplicativos de destino.
-
Fluxo automatizado de implantação.
Recupera as informações da implantação, incluindo os detalhes da imagem docker e os scripts de início e parada do aplicativo.
Baixa a imagem docker do repositório de imagens para a instância ECS.
Executa o script de parada para interromper a versão antiga do aplicativo.
Executa o script de início para iniciar a nova versão do aplicativo.
Observações de uso
As implantações têm suporte apenas em instâncias Linux.
Os scripts de início e parada devem ser scripts shell.
Procedimento
-
Prepare o aplicativo, o grupo e as instâncias ECS.
Antes de implantar, crie um aplicativo e um grupo no ECS Application Management. Em seguida, adicione suas instâncias ECS ao grupo.
-
Caso não tenha uma instância ECS, acesse a página ECS console - Custom Launch para criar uma instância ECS Linux.
Os scripts de exemplo a seguir destinam-se a estas imagens. Se você usar uma imagem diferente, modifique os scripts adequadamente.
Acesse a página ECS console - Application management e clique em Create from Existing Resources para criar um aplicativo e um grupo de aplicativos e importar a instância ECS para o grupo.
-
Instale o docker nas instâncias ECS do grupo. Na aba O&M do grupo de aplicativos, selecione ACS-ECS-BulkyConfigureOOSPackageWithTemporaryURL para instalar o docker em lote.
Se sua instância ECS foi criada a partir de uma imagem personalizada, não é possível instalar extensões dessa forma. Conecte-se remotamente à instância e instale o docker manualmente .
-
-
Crie uma implantação de imagem docker.
-
Baixe a imagem de exemplo para sua máquina local. Depois, envie a imagem para o repositório da sua instância ACR Enterprise Edition.
docker pull aliyun-computenest-opensource-registry.cn-hangzhou.cr.aliyuncs.com/default/aliyun-code-deploy:latest Acesse a página ECS console - Application management. Na aba My Applications, clique no nome do aplicativo de destino.
Na página de detalhes do aplicativo, selecione a aba Deployment e clique em Create Deployment.
-
Na página Create Deployment, defina RevisionType como Docker Image e configure os seguintes parâmetros principais.
Informações da instância ACR: Insira os detalhes da sua instância ACR Enterprise Edition. Após inserir a versão da imagem, o sistema gera automaticamente um Registry Address. Use esse endereço no script de início do aplicativo.

Diretório de trabalho: Diretório de execução para os scripts de início e parada do aplicativo. Exemplo:
/root/deploy.-
Script de início do aplicativo: Substitua
<Registry Address>pelo endereço real.### The Docker image is automatically pulled to the ECS instance during deployment. You can start the container directly. ### Start the current version of the container start_application() { image_name="<Registry Address>" container_name="my-container" docker run -d -p 8080:8080 --name ${container_name} ${image_name} } start_application -
Script de parada do aplicativo:
stop_application() { # Query whether the container exists by the container name, and delete the container if it exists container_name="my-container" container_id=$(docker ps -aq -f name=${container_name}) if [ -n "$container_id" ]; then docker rm -f $container_id fi } stop_application
Após configurar todos os parâmetros, clique em OK para salvar a implantação.
-
Retorne à lista de implantações, localize a implantação criada e clique em Deploy. Selecione o grupo de destino e clique em OK para iniciar a implantação.
-
Verifique o resultado.
Acesse a página de detalhes da instância de destino. Clique em Connect e selecione Workbench. Siga as instruções na tela para acessar o terminal.
Execute o comando
curl http://localhost:8080/hello. Uma resposta comAlibaba Spring Sample!indica que a implantação foi bem-sucedida.
Campos principais
Campo | Descrição |
Região do Container Registry | Região onde a instância ACR Enterprise Edition está localizada. |
ID da instância do Container Registry | ID da instância ACR Enterprise Edition. |
Namespace | Namespace onde o repositório de imagens está localizado. |
Nome do repositório | Nome do repositório de imagens. |
Versão da imagem | Versão da imagem docker a ser implantada. |
Baixar imagem via rede privada | Se optar por baixar a imagem pela rede privada, certifique-se de que a instância ACR e a instância ECS estejam na mesma virtual private cloud (VPC). Também é necessário ter configurado o controle de acesso para a VPC. |
Diretório de trabalho | Diretório de trabalho para os scripts de início e parada do aplicativo.
|
Script de início do aplicativo | Script Shell usado para iniciar o aplicativo. |
Script de parada do aplicativo | Script shell para parar o aplicativo. Por exemplo, o script abaixo para um contêiner chamado
|