Todos os produtos
Search
Central de documentação

Enterprise Distributed Application Service:Criar uma imagem de aplicação

Última atualização: Jun 26, 2026

Crie um pacote WAR ou JAR para sua aplicação com ferramentas de desenvolvimento locais. Em seguida, gere uma imagem docker baseada nesse pacote e envie-a para um repositório de imagens do Alibaba Cloud para implantar a aplicação. O EDAS oferece imagens base pré-construídas para três frameworks de aplicação — HSF (High-speed Service Framework), Spring Cloud e Dubbo —, o que permite escrever um Dockerfile mínimo apenas para copiar o pacote WAR ou JAR para a imagem.

Cada imagem base inclui uma combinação específica de sistema operacional, JDK e Tomcat. As imagens base do HSF também contêm o container de middleware Pandora.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Uma instalação local do docker

  • Um pacote de aplicação WAR ou JAR pronto para implantação

  • Uma instância do Alibaba Cloud Container Registry com um repositório de imagens

Para obter informações sobre as variáveis de ambiente injetadas pelo EDAS durante a execução, consulte Variáveis de ambiente de execução.

Escolha uma imagem base

Selecione uma imagem base conforme o framework da aplicação e os requisitos de tempo de execução.

Imagem base

Java

Tomcat

Pandora

Caso de uso

apaas/edas

OpenJDK 1.8

8.5.78

N/A

Spring Cloud ou Dubbo (alias para edas-centos-openjdk8-tomcat8)

apaas/edas-centos-openjdk8-tomcat8

OpenJDK 1.8

8.5.78

N/A

Spring Cloud ou Dubbo no Tomcat 8.x

apaas/edas-centos-openjdk8-tomcat7

OpenJDK 1.8

7.0.93

N/A

Spring Cloud ou Dubbo no Tomcat 7.x

apaas/edas-centos-openjdk8-alitomcat8

OpenJDK 1.8

8.5.37

3.5.9

HSF no Ali-Tomcat 8.x

apaas/edas-centos-openjdk8-alitomcat7

OpenJDK 1.8

7.0.92

3.5.9

HSF no Ali-Tomcat 7.x

apaas/edas-centos-openjdk8-alitomcat8-v4

OpenJDK 1.8

8.5.37

4.0.2

HSF 4.0 no Ali-Tomcat 8.x

apaas/edas-centos-openjdk8-alitomcat7-v4

OpenJDK 1.8

7.0.92

4.0.2

HSF 4.0 no Ali-Tomcat 7.x

apaas/edas-centos7-openjdk17-tomcat9

OpenJDK 17

9.0.70

N/A

OpenJDK 17 + Tomcat 9

apaas/edas-centos7-openjdk17-tomcat10

OpenJDK 17

10.1.41

N/A

OpenJDK 17 + Tomcat 10

Todas as imagens estão hospedadas em apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/ e executam no CentOS 7. A tag mais recente é latest.

Para acessar mais imagens, visite o aPaaS docker Hub. Para suporte técnico, entre no grupo do DingTalk com o ID 31723701. Para visualizar os Dockerfiles de source dessas imagens base, consulte o repositório alibabacloud-edas-dockerfile-demo no GitHub.

Escrever um Dockerfile

Um Dockerfile define as instruções para montar a imagem da aplicação. Como as imagens base do EDAS já incluem JDK, Tomcat e scripts de inicialização, o Dockerfile precisa apenas copiar o pacote da aplicação para a imagem.

Aplicações HSF

Aplicações HSF exigem uma imagem base Ali-Tomcat com o container de middleware Pandora.

# Base: CentOS 7 + OpenJDK 8 + Ali-Tomcat 7 + Pandora 3.5.9
FROM apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas-centos-openjdk8-alitomcat7:latest
MAINTAINER Alibaba Cloud EDAS Team<edas-**@list.alibaba-inc.com>

ENV TZ="Asia/Shanghai"

# Application directory inside the container
ENV APP_HOME /home/admin/app/

##### Deploy a JAR file (default)
ARG APP_LOCATION=https://edas-hz.oss-cn-hangzhou.aliyuncs.com/prod/demo/HSF_PROVIDER.jar

##### Deploy a WAR file -- uncomment the line below and comment out the JAR line
#ARG APP_LOCATION=https://edas-hz.oss-cn-hangzhou.aliyuncs.com/prod/demo/HSF_PROVIDER.war

##### Deploy from local storage -- uncomment and set the path to your local file
#ARG APP_LOCATION=/path/to/your/HSF_PROVIDER.war

# Copy the application package into the container
ADD ${APP_LOCATION} ${APP_HOME}/

# The startup script and working directory are provided by the base image.
# Entry point: /home/admin/bin/start.sh
# Working directory: /home/admin

Aplicações Spring Cloud ou Dubbo

Aplicações Spring Cloud e Dubbo utilizam a imagem base padrão do EDAS (sem Pandora).

# Base: CentOS 7 + OpenJDK 8 + Tomcat 8
FROM apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas:latest

# Application directory inside the container
ENV APP_HOME /home/admin/app/

##### Deploy a JAR file (default)
ARG APP_LOCATION=https://edas-hz.oss-cn-hangzhou.aliyuncs.com/prod/demo/DUBBO_PROVIDER.jar

##### Deploy a WAR file -- uncomment the line below and comment out the JAR line
#ARG APP_LOCATION=https://edas-hz.oss-cn-hangzhou.aliyuncs.com/prod/demo/DUBBO_PROVIDER.war

##### Deploy from local storage -- uncomment and set the path to your local file
#ARG APP_LOCATION=/path/to/your/SPRING_CLOUD_PROVIDER.war

# Copy the application package into the container
ADD ${APP_LOCATION} ${APP_HOME}/

Personalizar a imagem

Após criar um Dockerfile base, aplique qualquer uma das personalizações abaixo.

Atualizar o OpenJDK

Instale uma versão mais recente do JDK diretamente no Dockerfile. O EDAS suporta até o OpenJDK 21 para imagens personalizadas.

O exemplo a seguir substitui o OpenJDK 8 pré-instalado pelo OpenJDK 9:

# Remove the pre-installed JDK and install OpenJDK 9
RUN yum erase -y java; yum -y install java-1.9.0-openjdk-devel

Atualizar a versão do EDAS Container (apenas HSF)

Para aplicações HSF em clusters ACK, atualize as versões do Pandora e do Ali-Tomcat para acessar novos recursos ou correções do middleware.

  1. Faça login no console do EDAS.

  2. No painel de navegação à esquerda, escolha Application Management > Applications.

  3. Na página Applications, clique em Create Application. Na seção Application Runtime Environment da etapa Basic Information, localize os valores disponíveis para Pandora Version e Ali-Tomcat Version.

  4. Defina a versão desejada no Dockerfile. Por exemplo, para atualizar para o Pandora 3.5.4:

        # Upgrade the Pandora version
        ENV UPGRADED_CONTAINER_VERSION 3.5.4
        RUN /home/admin/bin/upgradecontainer.sh
  5. Reconstrua e envie a imagem.

Definir parâmetros de inicialização da JVM

Transmita os parâmetros da JVM pela variável de ambiente JAVA_OPTS:

FROM apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas:latest

# Set JVM memory parameters
ENV JAVA_OPTS="\
     -Xmx3550m \
     -Xms3550m \
     -Xmn2g \
     -Xss128k"

Configure definições do Spring Boot

Para aplicações FatJar, modifique as configurações de inicialização do Tomcat pela variável de ambiente APP_ARGS. A imagem base utiliza os seguintes padrões:

Parâmetro

Padrão

Caminho de contexto

/

Codificação URI

ISO-8859-1

Porta

8080

Máximo de threads do Tomcat

400

Substitua esses valores padrão conforme necessário:

FROM apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas:latest

# Override Spring Boot defaults
ENV APP_ARGS="--server.context-path=/  \
              --server.tomcat.uri-encoding=ISO-8859-1 \
              --server.port=8080 \
              --server.tomcat.max-threads=400"

Compilar e enviar a imagem

Compilar a imagem

  1. Abra um terminal e acesse o diretório que contém o Dockerfile.

  2. Execute docker build para crie a imagem. Exemplo: Se o Dockerfile tiver um nome ou localização não padrão, especifique-o com a flag -f:

        docker build -t <app-name>:<version> .
        docker build -t hsf-provider:1.0.0 .
        docker build -t hsf-provider:1.0.0 -f /path/to/custom_dockerfile .
  3. Verifique se a imagem foi criada:

        docker images | grep hsf-provider

Enviar a imagem para o Container Registry

Após compilar a imagem, envie-a para o Alibaba Cloud Container Registry.

Configure um repositório

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

  2. Na página Instances, mude para a região onde a aplicação EDAS está em execução (ou onde você planeja crie uma).

  3. Selecione uma instância e clique em Repositories no painel de navegação à esquerda.

  4. Escolha um repositório existente ou crie um novo. Use o nome da aplicação como nome do repositório para facilitar a identificação.

Enviar a imagem

Execute os comandos a seguir. Substitua os placeholders pelos valores reais.

Placeholder

Descrição

Exemplo

<username>

Nome de usuário de login do Container Registry

td****@gmail.com

<region-id>

Região da instância do Container Registry

cn-hangzhou

<image-id>

ID da imagem local obtido via docker images

2b64f63601a7

<namespace>

Namespace do Container Registry

webapps

<repository>

Nome do repositório

hsf-provider

<version>

Tag de versão da imagem

1.0.0

# Step 1: Log in to Container Registry
# Enter the fixed or temporary password for the default instance in Container Registry, not your Alibaba Cloud account password.
docker login --username=<username> registry.<region-id>.aliyuncs.com

# Step 2: Tag the image
docker tag <image-id> registry.<region-id>.aliyuncs.com/<namespace>/<repository>:<version>

# Step 3: Push the image
docker push registry.<region-id>.aliyuncs.com/<namespace>/<repository>:<version>

Exemplo:

docker login --username=td****@gmail.com registry.cn-hangzhou.aliyuncs.com
docker tag 2b64f63601a7 registry.cn-hangzhou.aliyuncs.com/webapps/hsf-provider:1.0.0
docker push registry.cn-hangzhou.aliyuncs.com/webapps/hsf-provider:1.0.0

阿里云镜像仓库

Para acelerar a rede de um repositório de imagens do Alibaba Cloud, siga estas etapas: Faça login no console do Container Registry. No painel de navegação à esquerda, clique em Image Tool. Em seguida, clique em Image Accelerator. Na página Image Accelerator, obtenha o valor do parâmetro Booster URL.

Acelerar o pull de imagens com o Image Accelerator

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

  2. No painel de navegação à esquerda, clique em Image Tool e depois em Image Accelerator.

  3. Na página Image Accelerator, obtenha a Booster URL.

Variáveis de ambiente de execução

O EDAS injeta variáveis de ambiente em cada pod por meio de um ConfigMap do Kubernetes chamado edas-envs. Não sobrescreva esses valores.

Variáveis de configuração de serviço

Variável de ambiente

Tipo

Descrição

EDAS_ADDRESS_SERVER_DOMAIN

String

Nome de domínio ou endereço IP do centro de configuração

EDAS_ADDRESS_SERVER_PORT

String

Porta do centro de configuração

EDAS_CONFIGSERVER_CLIENT_PORT

String

Porta do ConfigServer

Variáveis de execução da aplicação

Variável de ambiente

Tipo

Descrição

POD_IP

String

Endereço IP do pod

EDAS_APP_ID

String

ID da aplicação EDAS

EDAS_ECC_ID

String

ID ECC do EDAS.

EDAS_PROJECT_NAME

String

Igual a EDAS_APP_ID; usado para análise de rastreamento

EDAS_JM_CONTAINER_ID

String

Igual a EDAS_ECC_ID; usado para análise de rastreamento

EDAS_CATALINA_OPTS

String

Parâmetros CATALINA_OPTS para o runtime do middleware

CATALINA_OPTS

String

Igual a EDAS_CATALINA_OPTS; parâmetro padrão de inicialização do Tomcat

CATALINA_HOME

String

Caminho de instalação do Tomcat

PANDORA_LOCATION

String

Caminho de instalação do Pandora (apenas aplicações HSF)

Aviso

Não use o arquivo /home/admin/.spas_key/default. O EDAS sobrescreve esse arquivo quando o pod é iniciado.