Todos os produtos
Search
Central de documentação

Container Registry:Crie uma imagem de aplicação Java com um Dockerfile

Última atualização: Jul 03, 2026

As compilações em múltiplos estágios no Alibaba Cloud Container Registry (ACR) geram imagens de aplicações Java seguras e compactas, com tempos de compilação mais rápidos.

Pré-requisitos

Informações básicas

Problemas comuns na compilação de imagens

A compilação de uma imagem a partir de um Dockerfile pode apresentar diversos desafios:

  • Dificuldade na escrita de Dockerfiles

    Desenvolvedores podem não ter familiaridade com a criação de Dockerfiles para compilar imagens de aplicações.

  • Imagens excessivamente grandes

    Incluir compilação, testes e empacotamento em um único Dockerfile adiciona camadas desnecessárias à imagem, resultando em uma hierarquia complexa e um arquivo de imagem grande.

  • Risco de vazamento de código-fonte

    O código-fonte pode ser incluído acidentalmente na imagem final, criando um risco de segurança.

Benefícios das compilações em múltiplos estágios

Para linguagens compiladas como Java, o uso de compilação em múltiplos estágios no Dockerfile oferece os seguintes benefícios:

  • Maior segurança da imagem

    O primeiro estágio usa uma imagem base de tempo de compilação para baixar dependências, compilar, testar e empacotar a aplicação. O segundo estágio utiliza uma imagem base leve de tempo de execução e copia apenas os artefatos compilados do primeiro estágio. A imagem final não contém código-fonte.

  • Camadas e tamanho da imagem otimizados

    A imagem final contém apenas a imagem base e os artefatos compilados. Isso resulta em menos camadas de imagem e um tamanho de arquivo menor.

  • Velocidade de compilação aumentada

    Ferramentas de compilação como docker e BuildKit podem executar vários estágios de compilação em paralelo para reduzir o tempo total de compilação.

Etapa 1: Vincular um repositório de código-fonte

No console do Alibaba Cloud Container Registry, vincule seu repositório de código hospedado. Este exemplo utiliza um repositório do GitHub.

  1. Faça login no console do Container Registry.

  2. Na barra de navegação superior, selecione uma região.

  3. Na página Instances, clique em a instância Personal Edition que deseja gerenciar.

  4. No painel de navegação à esquerda, escolha Repository > Code Source.

  5. Na linha do GitHub, clique em Bind Account na coluna Actions. Na caixa de diálogo exibida, clique em Go to the source code repository to bind account para abrir o GitHub.

  6. Na página de autorização, clique em Authorize AliyunDeveloper. Após retornar à página Code Source, o status do GitHub será exibido como Bound, indicando que o vínculo foi bem-sucedido.

Etapa 2: Criar um repositório

  1. Faça login no console do Container Registry.

  2. Na barra de navegação superior, selecione uma região.

  3. Na página Instances, clique em a instância Personal Edition que deseja gerenciar.

  4. No painel de navegação à esquerda, escolha Repository > Repositories e clique em Create Repository.

  5. Configure as informações do repositório.

    Parâmetro

    Descrição

    Exemplo

    Region

    Região onde o repositório está localizado.

    China (Hangzhou)

    Namespace

    Namespace do repositório.

    test23432

    Repository Name

    Insira um nome para o repositório.

    test

    Repository Type

    O tipo de repositório pode ser Public ou Private. É necessário fazer login para enviar imagens, independentemente do tipo de repositório. Para proteger seus dados, utilize um repositório privado.

    • Public: Qualquer pessoa pode baixe imagens sem autenticação.

    • Private: A autenticação é obrigatória para baixe imagens.

    Private

    Summary

    Breve descrição.

    -

    Description

    Descrição detalhada. Markdown é suportado.

    Use o Dockerfile criado e o serviço de compilação de imagens do ACR para compilar, empacotar e execute a imagem.

  6. Clique em Next e defina a origem do código.

    Parâmetro

    Descrição

    Code Source

    Defina Code Source como GitHub e selecione o repositório de código-fonte vinculado.

    Build Settings

    Para este exemplo, selecione Automatically Build Images When Code Changes e Build with Servers Deployed Outside Chinese Mainland.

    • Automatically Build Images When Code Changes: Aciona automaticamente uma compilação quando o código é enviado para um branch.

    • Build with Servers Deployed Outside Chinese Mainland: Executa a compilação em um data center fora da China continental e envia a imagem resultante para a região especificada.

    • Build Without Cache: Força uma nova busca da imagem base de dependências a cada compilação, o que pode aumentar o tempo de compilação.

  7. Clique em Create Repository.

    Após a criação do repositório, a página de detalhes exibirá suas informações básicas.

  8. No painel de navegação à esquerda, clique em o ícone 23030201 à esquerda do nome do repositório. Na página Repositories, você verá seu novo repositório. Um Status definido como Normal indica que o repositório foi criado com sucesso.

Etapa 3: Executar uma compilação

  1. No painel de navegação à esquerda, escolha Repository > Repositories. Clique em o nome do seu repositório ou em Manage na coluna Actions do repositório.

  2. No painel de navegação à esquerda, clique em Build. Na seção Build Rules, clique em Add Build Rule.

  3. Configure a regra de compilação.

    Parâmetro

    Descrição

    Exemplo

    Type

    Evento que aciona a regra de compilação quando o código é enviado ao repositório. Os valores válidos são Branch e Tag.

    Branch

    Branch/Tag

    Branch de código a partir do qual a compilação será feita.

    master

    Build Context Directory

    Diretório onde o Dockerfile está localizado. Trata-se de um caminho relativo à raiz do branch de código. Neste tutorial, o caminho completo é /Dockerfile, portanto insira / aqui.

    /

    Dockerfile Filename

    Nome do Dockerfile. O padrão é Dockerfile. Por exemplo, se o caminho completo for /Dockerfile, insira Dockerfile.

    Dockerfile

    Image Version

    Tag para a versão da imagem.

    V1.0.0

  4. Clique em OK para retornar à página Build.

  5. Na seção Build Rules, localize a regra criada e clique em Build na coluna Actions correspondente.

    Na seção Build Log, um status de compilação Success indica que a compilação foi concluída.

Verifique os resultados

Visualize a imagem compilada

No painel de navegação à esquerda, escolha Repository > Repositories. Clique em o nome do seu repositório ou em Manage na coluna Actions. No painel de navegação à esquerda da página de detalhes do repositório, clique em Image Version para visualize a imagem compilada.

Execute a imagem

A partir de 9 de setembro de 2024, o formato dos endpoints de registro para novas instâncias Personal Edition será alterado. Para mais informações, consulte Notas de uso para novas instâncias Personal Edition. Escolha um método para enviar e baixe imagens com base na versão da sua instância.

Nova instância Personal Edition

  1. Execute o seguinte comando no docker para fazer login no Alibaba Cloud docker Registry. No comando, substitua acr_e2******@test.aliyunid.com pelo nome da sua conta Alibaba Cloud, cn-hangzhou pela região da instância e crpi-xxxx pelo ID da instância. Será solicitada sua senha. Para encontrar o ID da instância, faça login no console do Alibaba Cloud Container Registry, acesse sua Personal Edition e encontre o Instance ID na página Overview, sob a aba Instance.

    docker login --username=acr_e2******@test.aliyunid.com crpi-xxxx.cn-hangzhou.personal.cr.aliyuncs.com
  2. Execute o comando a seguir para baixe a imagem.

    docker pull crpi-xxxx.cn-hangzhou.personal.cr.aliyuncs.com/test23432/test:V1.0.0
  3. Execute o comando a seguir para visualize suas imagens docker.

    docker images
  4. Execute o comando a seguir para execute a imagem.

    docker run -ti crpi-xxxx.cn-hangzhou.personal.cr.aliyuncs.com/test23432/test:V1.0.0
    Hello World!

Instância Personal Edition antiga

  1. Execute o seguinte comando no docker para fazer login no Alibaba Cloud docker Registry. No comando, substitua acr_e2******@test.aliyunid.com pelo nome da sua conta Alibaba Cloud e cn-hangzhou pela região da sua instância. Será solicitada sua senha.

    docker login --username=acr_e2******@test.aliyunid.com registry.cn-hangzhou.cr.aliyuncs.com
  2. Execute o comando a seguir para baixe a imagem. No comando, substitua cn-hangzhou pela região da sua instância, test23432 pelo seu namespace e test:V1.0.0 pelo nome do repositório e tag da imagem.

    docker pull registry.cn-hangzhou.cr.aliyuncs.com/test23432/test:V1.0.0
  3. Execute o comando a seguir para visualize suas imagens docker.

    docker images
  4. Execute o comando a seguir para execute a imagem. Substitua cn-hangzhou pela região da sua instância Personal Edition. Substitua test23432 pelo seu namespace real. Substitua test:V1.0.0 pelo nome do repositório e tag da imagem reais.

    docker run -ti registry.cn-hangzhou.cr.aliyuncs.com/test23432/test:V1.0.0
    Hello World!