Todos los productos
Search
Centro de documentos

Enterprise Distributed Application Service:Create an application image

Última actualización: Sep 08, 2026

Puede crear un paquete WAR o JAR para una aplicación mediante herramientas de desarrollo locales. Después, cree una imagen de docker basada en ese paquete y cárguela en un repositorio de imágenes de Alibaba Cloud para desplegar la aplicación. EDAS proporciona imágenes base precompiladas para tres frameworks de aplicaciones: HSF (High-speed Service Framework), Spring Cloud y Dubbo. Por lo tanto, solo necesita escribir un Dockerfile mínimo que copie su paquete WAR o JAR dentro de la imagen.

Cada imagen base incluye una combinación específica de sistema operativo, JDK y Tomcat. Las imágenes base de HSF también incluyen el contenedor de middleware Pandora.

Requisitos previos

Antes de empezar, compruebe que cuenta con lo siguiente:

  • Una instalación local de docker

  • Un paquete de aplicación WAR o JAR listo para el despliegue

  • Una instancia de Alibaba Cloud Container Registry con un repositorio de imágenes

Para obtener información sobre las variables de entorno que EDAS inyecta durante la ejecución, consulte Runtime environment variables.

Elegir una imagen base

Seleccione una imagen base según el framework de su aplicación y sus requisitos de ejecución.

Imagen base

Java

Tomcat

Pandora

Caso de uso

apaas/edas

OpenJDK 1.8

8.5.78

N/A

Spring Cloud o Dubbo (alias de edas-centos-openjdk8-tomcat8)

apaas/edas-centos-openjdk8-tomcat8

OpenJDK 1.8

8.5.78

N/A

Spring Cloud o Dubbo en Tomcat 8.x

apaas/edas-centos-openjdk8-tomcat7

OpenJDK 1.8

7.0.93

N/A

Spring Cloud o Dubbo en Tomcat 7.x

apaas/edas-centos-openjdk8-alitomcat8

OpenJDK 1.8

8.5.37

3.5.9

HSF en Ali-Tomcat 8.x

apaas/edas-centos-openjdk8-alitomcat7

OpenJDK 1.8

7.0.92

3.5.9

HSF en Ali-Tomcat 7.x

apaas/edas-centos-openjdk8-alitomcat8-v4

OpenJDK 1.8

8.5.37

4.0.2

HSF 4.0 en Ali-Tomcat 8.x

apaas/edas-centos-openjdk8-alitomcat7-v4

OpenJDK 1.8

7.0.92

4.0.2

HSF 4.0 en 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 las imágenes se alojan en apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/ y se ejecutan en CentOS 7. La etiqueta más reciente es latest.

Para consultar más imágenes, visite aPaaS Docker Hub. Si requiere asistencia técnica, únase al grupo de DingTalk con el identificador 31723701. Para revisar los archivos Dockerfile originales de estas imágenes base, consulte el repositorio alibabacloud-edas-dockerfile-demo en GitHub.

Escribir un Dockerfile

Un Dockerfile define las instrucciones para compilar la imagen de su aplicación. Las imágenes base de EDAS ya incluyen el JDK, Tomcat y los scripts de inicio, por lo que el Dockerfile solo necesita copiar el paquete de la aplicación dentro de la imagen.

Aplicaciones HSF

Las aplicaciones HSF requieren una imagen base de Ali-Tomcat con el contenedor 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

Aplicaciones Spring Cloud o Dubbo

Las aplicaciones Spring Cloud y Dubbo utilizan la imagen base estándar de EDAS (sin 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 la imagen

Después de crear un Dockerfile base, aplique cualquiera de las siguientes personalizaciones.

Actualizar OpenJDK

Instale una versión más reciente del JDK directamente en el Dockerfile. EDAS admite hasta OpenJDK 21 para imágenes personalizadas.

A continuación se muestra un ejemplo que reemplaza OpenJDK 8, instalado previamente, por 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

Actualizar la versión de EDAS Container (solo HSF)

En las aplicaciones HSF alojadas en clústeres ACK, actualice las versiones de Pandora y Ali-Tomcat para acceder a nuevas funciones o correcciones del middleware.

  1. Inicie sesión en la consola de EDAS.

  2. En el panel de navegación izquierdo, vaya a Application Management > Applications.

  3. En la página Applications, haga clic en Create Application. En la sección Application Runtime Environment del paso Basic Information, busque los valores disponibles de Pandora Version y Ali-Tomcat Version.

  4. Establezca la versión de destino en el Dockerfile. Por ejemplo, para actualizar a Pandora 3.5.4:

        # Upgrade the Pandora version
        ENV UPGRADED_CONTAINER_VERSION 3.5.4
        RUN /home/admin/bin/upgradecontainer.sh
  5. Recompile y envíe la imagen.

Establecer parámetros de inicio de JVM

Pase los parámetros de JVM mediante la variable de entorno JAVA_OPTS:

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

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

Configurar los ajustes de Spring Boot

Para las aplicaciones FatJar, modifique los ajustes de inicio de Tomcat mediante la variable de entorno APP_ARGS. La imagen base utiliza los siguientes valores predeterminados:

Parámetro

Valor predeterminado

Ruta de contexto

/

Codificación de URI

ISO-8859-1

Puerto

8080

Número máximo de subprocesos de Tomcat

400

Modifique estos valores predeterminados según sea necesario:

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 y enviar la imagen

Compilar la imagen

  1. Abra una terminal y vaya al directorio que contiene su Dockerfile.

  2. Ejecute docker build para crear la imagen: Ejemplo: si su Dockerfile tiene un nombre o una ubicación distintos a los predeterminados, especifíquelo con la marca -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. Compruebe que la imagen se haya creado:

        docker images | grep hsf-provider

Enviar la imagen a Container Registry

Una vez compilada la imagen, envíela a Alibaba Cloud Container Registry.

Configurar un repositorio

  1. Inicie sesión en la consola de Container Registry.

  2. En la página Instances, cambie a la región donde se ejecuta su aplicación de EDAS (o donde planea crearla).

  3. Seleccione una instancia y luego haga clic en Repositories en el panel de navegación izquierdo.

  4. Seleccione un repositorio existente o cree uno. Utilice el nombre de la aplicación como nombre del repositorio para identificarlo fácilmente.

Enviar la imagen

Ejecute los siguientes comandos. Reemplace los marcadores de posición con sus valores reales.

Marcador de posición

Descripción

Ejemplo

<username>

Nombre de usuario para iniciar sesión en Container Registry

td****@gmail.com

<region-id>

Región de su instancia de Container Registry

cn-hangzhou

<image-id>

Identificador de la imagen local obtenido con docker images

2b64f63601a7

<namespace>

Espacio de nombres de Container Registry

webapps

<repository>

Nombre del repositorio

hsf-provider

<version>

Etiqueta de versión de la imagen

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>

Ejemplo:

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 la red de un repositorio de imágenes de Alibaba Cloud, siga estos pasos: Inicie sesión en la consola de Container Registry. En el panel de navegación izquierdo, haga clic en Image Tool. Luego, haga clic en Image Accelerator. En la página Image Accelerator, obtenga el valor del parámetro Booster URL.

Acelerar la descarga de imágenes con Image Accelerator

  1. Inicie sesión en la consola de Container Registry.

  2. En el panel de navegación izquierdo, haga clic en Image Tool y luego en Image Accelerator.

  3. En la página Image Accelerator, obtenga el valor de Booster URL.

Variables de entorno de ejecución

EDAS inyecta variables de entorno en cada pod mediante un ConfigMap de Kubernetes llamado edas-envs. No sobrescriba estos valores.

Variables de configuración del servicio

Variable de entorno

Tipo

Descripción

EDAS_ADDRESS_SERVER_DOMAIN

String

Nombre de dominio o dirección IP del centro de configuración

EDAS_ADDRESS_SERVER_PORT

String

Puerto del centro de configuración

EDAS_CONFIGSERVER_CLIENT_PORT

String

Puerto de ConfigServer

Variables de ejecución de la aplicación

Variable de entorno

Tipo

Descripción

POD_IP

String

Dirección IP del pod

EDAS_APP_ID

String

Identificador de la aplicación en EDAS

EDAS_PROJECT_NAME

String

Igual que EDAS_APP_ID; se usa para analizar trazas

EDAS_JM_CONTAINER_ID

String

Igual que EDAS_ECC_ID; se usa para analizar trazas

EDAS_CATALINA_OPTS

String

Parámetros CATALINA_OPTS para la ejecución del middleware

CATALINA_OPTS

String

Igual que EDAS_CATALINA_OPTS; parámetro de inicio predeterminado de Tomcat

CATALINA_HOME

String

Ruta de instalación de Tomcat

PANDORA_LOCATION

String

Ruta de instalación de Pandora (solo para aplicaciones HSF)

Aviso

No utilice el archivo /home/admin/.spas_key/default. EDAS sobrescribe este archivo cuando se inicia el pod.