Yerel geliştirme araçlarını kullanarak bir uygulama için WAR veya JAR paketi oluşturabilir, bu paket temel alınarak bir Docker görüntüsü hazırlayabilir ve uygulamayı dağıtmak üzere bunu bir Alibaba Cloud görüntü deposuna yükleyebilirsiniz. EDAS; HSF (High-speed Service Framework), Spring Cloud ve Dubbo olmak üzere üç uygulama çerçevesi için önceden derlenmiş temel görüntüler sunar. Bu sayede, WAR veya JAR paketinizi görüntünün içine kopyalayan minimum düzeyde bir Dockerfile yazmanız yeterlidir.
Her temel görüntü, belirli bir işletim sistemi, JDK ve Tomcat kombinasyonunu içerir. HSF temel görüntüleri ayrıca Pandora ara katman konteynerini de barındırır.
Ön koşullar
Başlamadan önce aşağıdaki öğelere sahip olduğunuzdan emin olun:
Yerel bir Docker kurulumu
Dağıtıma hazır bir WAR veya JAR uygulama paketi
Görüntü deposuna sahip bir Alibaba Cloud Container Registry örneği
EDAS'in çalışma zamanında enjekte ettiği ortam değişkenleri hakkında bilgi edinmek için bkz. Çalışma zamanı ortam değişkenleri.
Temel görüntü seçin
Uygulama çerçevenize ve çalışma zamanı gereksinimlerinize göre bir temel görüntü seçin.
| Temel görüntü | Java | Tomcat | Pandora | Kullanım durumu |
|---|---|---|---|---|
apaas/edas |
OpenJDK 1.8 | 8.5.78 | Yok | Spring Cloud veya Dubbo (edas-centos-openjdk8-tomcat8 için takma ad) |
apaas/edas-centos-openjdk8-tomcat8 |
OpenJDK 1.8 | 8.5.78 | Yok | Tomcat 8.x üzerinde Spring Cloud veya Dubbo |
apaas/edas-centos-openjdk8-tomcat7 |
OpenJDK 1.8 | 7.0.93 | Yok | Tomcat 7.x üzerinde Spring Cloud veya Dubbo |
apaas/edas-centos-openjdk8-alitomcat8 |
OpenJDK 1.8 | 8.5.37 | 3.5.9 | Ali-Tomcat 8.x üzerinde HSF |
apaas/edas-centos-openjdk8-alitomcat7 |
OpenJDK 1.8 | 7.0.92 | 3.5.9 | Ali-Tomcat 7.x üzerinde HSF |
apaas/edas-centos-openjdk8-alitomcat8-v4 |
OpenJDK 1.8 | 8.5.37 | 4.0.2 | Ali-Tomcat 8.x üzerinde HSF 4.0 |
apaas/edas-centos-openjdk8-alitomcat7-v4 |
OpenJDK 1.8 | 7.0.92 | 4.0.2 | Ali-Tomcat 7.x üzerinde HSF 4.0 |
apaas/edas-centos7-openjdk17-tomcat9 |
OpenJDK 17 | 9.0.70 | Yok | OpenJDK 17 + Tomcat 9 |
apaas/edas-centos7-openjdk17-tomcat10 |
OpenJDK 17 | 10.1.41 | Yok | OpenJDK 17 + Tomcat 10 |
Tüm görüntüler apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/ adresinde barındırılır ve CentOS 7 üzerinde çalışır. En son etiket latest şeklindedir.
Daha fazla görüntü için aPaaS Docker Hub adresini ziyaret edin. Teknik destek için DingTalk grup kimliği 31723701 numaralı gruba katılın. Bu temel görüntülerin arkasındaki kaynak Dockerfile'lar için GitHub'daki alibabacloud-edas-dockerfile-demo deposuna bakın.
Dockerfile yazın
Bir Dockerfile uygulamanızın görüntüsünü oluşturmak için gereken talimatları tanımlar. EDAS temel görüntüleri JDK, Tomcat ve başlatma betiklerini zaten içerdiğinden, Dockerfile'ın yalnızca uygulama paketinizi görüntünün içine kopyalaması gerekir.
HSF uygulamaları
HSF uygulamaları, Pandora ara katman konteynerini içeren bir Ali-Tomcat temel görüntüsü gerektirir.
# 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
Spring Cloud veya Dubbo uygulamaları
Spring Cloud ve Dubbo uygulamaları, standart EDAS temel görüntüsünü (Pandora olmadan) kullanır.
# 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}/
Görüntüyü özelleştirin
Temel bir Dockerfile oluşturduktan sonra aşağıdaki özelleştirmelerden istediğinizi uygulayabilirsiniz.
OpenJDK sürümünü yükseltin
Daha yeni bir JDK sürümünü doğrudan Dockerfile içine yükleyin. EDAS, özel görüntüler için OpenJDK 21'e kadar olan sürümleri destekler.
Aşağıdaki örnek, önceden yüklenmiş OpenJDK 8'i OpenJDK 9 ile değiştirir:
# Remove the pre-installed JDK and install OpenJDK 9
RUN yum erase -y java; yum -y install java-1.9.0-openjdk-devel
EDAS Konteyner sürümünü yükseltin (yalnızca HSF)
ACK kümelerindeki HSF uygulamaları için yeni ara katman özelliklerine veya düzeltmelere erişmek amacıyla Pandora ve Ali-Tomcat sürümlerini yükseltin.
EDAS konsolunda oturum açın.
Sol gezinme bölmesinde Application Management > Applications seçeneklerini belirleyin.
Applications sayfasında Create Application seçeneğine tıklayın. Basic Information adımının Application Runtime Environment bölümünde kullanılabilir Pandora Version ve Ali-Tomcat Version değerlerini bulun.
-
Dockerfile'da hedef sürümü ayarlayın. Örneğin, Pandora 3.5.4'e yükseltmek için:
# Upgrade the Pandora version ENV UPGRADED_CONTAINER_VERSION 3.5.4 RUN /home/admin/bin/upgradecontainer.sh Görüntüyü yeniden derleyin ve itin.
JVM başlatma parametrelerini ayarlayın
JVM parametrelerini JAVA_OPTS ortam değişkeni aracılığıyla iletin:
FROM apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas:latest
# Set JVM memory parameters
ENV JAVA_OPTS="\
-Xmx3550m \
-Xms3550m \
-Xmn2g \
-Xss128k"
Spring Boot ayarlarını yapılandırın
FatJar uygulamaları için Tomcat başlatma ayarlarını APP_ARGS ortam değişkeni aracılığıyla değiştirin. Temel görüntü aşağıdaki varsayılanları kullanır:
| Parametre | Varsayılan |
|---|---|
| Bağlam yolu | / |
| URI kodlaması | ISO-8859-1 |
| Bağlantı noktası | 8080 |
| Maksimum Tomcat iş parçacığı sayısı | 400 |
Bu varsayılanları gerektiği şekilde geçersiz kılın:
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"
Görüntüyü derleyin ve itin
Görüntüyü derleyin
Bir terminal açın ve Dockerfile'ınızı içeren dizine gidin.
-
Görüntüyü oluşturmak için
docker buildkomutunu çalıştırın. Örnek: Dockerfile'ınız varsayılan olmayan bir ada veya konuma sahipse,-fbayrağıyla belirtin: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 . -
Görüntünün oluşturulduğunu doğrulayın:
docker images | grep hsf-provider
Görüntüyü Container Registry'ye itin
Görüntüyü derledikten sonra bunu Alibaba Cloud Container Registry'ye itin.
Depo ayarlayın
Container Registry konsolu nda oturum açın.
Instances sayfasında, EDAS uygulamanızın çalıştığı (veya oluşturmayı planladığınız) bölgeye geçiş yapın.
Bir örnek seçin, ardından sol gezinme bölmesinde Repositories seçeneğine tıklayın.
Mevcut bir depoyu seçin veya yeni bir tane oluşturun. Kolay tanımlama için depo adı olarak uygulama adını kullanın.
Görüntüyü itin
Aşağıdaki komutları çalıştırın. Yer tutucuları gerçek değerlerinizle değiştirin.
| Yer tutucu | Açıklama | Örnek |
|---|---|---|
<username> |
Container Registry oturum açma kullanıcı adı | td****@gmail.com |
<region-id> |
Container Registry örneğinizin bulunduğu bölge | cn-hangzhou |
<image-id> |
docker images komutundan alınan yerel görüntü kimliği |
2b64f63601a7 |
<namespace> |
Container Registry ad alanı | webapps |
<repository> |
Depo adı | hsf-provider |
<version> |
Görüntü sürüm etiketi | 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>
Örnek:
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
Bir Alibaba Cloud görüntü deposunun ağ hızını artırmak için aşağıdaki adımları uygulayın: Container Registry konsolunda oturum açın. Sol gezinme bölmesinde Image Tool seçeneğine tıklayın. Ardından Image Accelerator seçeneğine tıklayın. Image Accelerator sayfasında Booster URL parametresinin değerini alın.
Image Accelerator ile görüntü çekme işlemini hızlandırın
Container Registry konsolu nda oturum açın.
Sol gezinme bölmesinde Image Tool seçeneğine, ardından Image Accelerator seçeneğine tıklayın.
Image Accelerator sayfasında Booster URL değerini alın.
Çalışma zamanı ortam değişkenleri
EDAS, her bir pod'a edas-envs adlı bir Kubernetes ConfigMap aracılığıyla ortam değişkenleri enjekte eder. Bu değerleri geçersiz kılmayın.
Hizmet yapılandırma değişkenleri
| Ortam değişkeni | Tür | Açıklama |
|---|---|---|
EDAS_ADDRESS_SERVER_DOMAIN |
Dize | Yapılandırma merkezinin alan adı veya IP adresi |
EDAS_ADDRESS_SERVER_PORT |
Dize | Yapılandırma merkezinin bağlantı noktası |
EDAS_CONFIGSERVER_CLIENT_PORT |
Dize | ConfigServer bağlantı noktası |
Uygulama çalışma zamanı değişkenleri
| Ortam değişkeni | Tür | Açıklama |
|---|---|---|
POD_IP |
Dize | Pod'un IP adresi |
EDAS_APP_ID |
Dize | EDAS uygulama kimliği |
EDAS_PROJECT_NAME |
Dize | EDAS_APP_ID ile aynıdır; izleme ayrıştırma için kullanılır |
EDAS_JM_CONTAINER_ID |
Dize | EDAS_ECC_ID ile aynıdır; izleme ayrıştırma için kullanılır |
EDAS_CATALINA_OPTS |
Dize | Ara katman çalışma zamanı için CATALINA_OPTS parametreleri |
CATALINA_OPTS |
Dize | EDAS_CATALINA_OPTS ile aynıdır; varsayılan Tomcat başlatma parametresi |
CATALINA_HOME |
Dize | Tomcat kurulum yolu |
PANDORA_LOCATION |
Dize | Pandora kurulum yolu (yalnızca HSF uygulamaları) |
/home/admin/.spas_key/default dosyasını kullanmayın. EDAS, pod başladığında bu dosyanın üzerine yazar.