Anda dapat menggunakan alat pengembangan lokal untuk membuat paket WAR atau JAR aplikasi. Selanjutnya, buat gambar berdasarkan paket tersebut dan unggah ke repositori gambar Alibaba Cloud untuk menyebarkan aplikasi. Topik ini menjelaskan cara membuat gambar aplikasi Enterprise Distributed Application Service (EDAS) dengan menulis Dockerfile serta cara mengunggah gambar ke repositori gambar Alibaba Cloud.
Prasyarat
Pastikan Anda telah membaca Lampiran: Variabel Lingkungan selama Runtime dan instruksi yang dijelaskan dalam topik ini.
Catatan penggunaan
Kunjungi GitHub untuk melihat contoh Dockerfile dan gambar yang digunakan dalam topik ini.
Spesifikasi dan batasan
Sebelum menggunakan Dockerfile untuk membuat gambar aplikasi EDAS, pastikan spesifikasi berikut terpenuhi dan perhatikan batasan yang ada:
Informasi Layanan
Informasi layanan mencakup nama domain EDAS dan port yang digunakan untuk terhubung selama runtime.
Tabel 4. Sumber Daya
Jenis sumber daya
Nama sumber daya
Deskripsi
ConfigMap
edas-envs
Informasi layanan EDAS.
Tabel 5. Variabel Lingkungan
Kunci variabel lingkungan
Tipe
Deskripsi
EDAS_ADDRESS_SERVER_DOMAIN
String
Nama domain atau alamat IP layanan pusat konfigurasi.
EDAS_ADDRESS_SERVER_PORT
String
Port layanan pusat konfigurasi.
EDAS_CONFIGSERVER_CLIENT_PORT
String
Port layanan ConfigServer.
Diperlukan: Variabel lingkungan selama runtime aplikasi
EDAS menyediakan variabel lingkungan saat Anda menyebarkan aplikasi untuk memastikan aplikasi berjalan sesuai harapan. Kami sarankan agar Anda tidak menimpa pengaturan variabel lingkungan. Untuk informasi lebih lanjut, lihat Lampiran: Variabel Lingkungan selama Runtime.
Buat Dockerfile standar
Dockerfile adalah file konfigurasi teks yang digunakan untuk membuat gambar secara efisien.
Gunakan Dockerfile untuk membuat gambar untuk High-speed Service Framework (HSF), Spring Cloud, atau aplikasi Dubbo sesuai kebutuhan bisnis Anda. Contoh berikut menjelaskan cara membuat Dockerfile untuk aplikasi dengan framework berbeda.
EDAS menyediakan Dockerfile standar yang mencakup semua instruksi untuk membangun lingkungan runtime aplikasi di EDAS. Instruksi ini membantu Anda memahami cara mengunduh, menginstal, dan menjalankan komponen seperti OpenJDK, Tomcat, serta paket WAR dan JAR. Anda dapat memodifikasi Dockerfile sesuai kebutuhan, misalnya mengganti versi OpenJDK, menyesuaikan konfigurasi Tomcat, atau mengubah lingkungan runtime. Untuk informasi lebih lanjut tentang OpenJDK, lihat Gambar Kustom: Gunakan OpenJDK Terbaru.
Untuk informasi lebih lanjut tentang Dockerfile, lihat bagian berikut:
Contoh Dockerfile untuk aplikasi HSF
# Menggunakan centos7 + openjdk8 + ali tomcat7 + pandora 3.5.9 sebagai dasar
FROM apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas-centos-openjdk8-alitomcat7:latest
MAINTAINER Tim EDAS Alibaba Cloud<edas-**@list.alibaba-inc.com>
ENV TZ="Asia/Shanghai"
# Secara default letakkan paket aplikasi Anda di /home/admin/app/
ENV APP_HOME /home/admin/app/
#####----> Kasus pertama: deploy file fat-jar
ARG APP_LOCATION=https://edas-hz.oss-cn-hangzhou.aliyuncs.com/prod/demo/HSF_PROVIDER.jar
#####----> Kasus kedua: deploy file war, cukup ubah nama file yang diinginkan.
#ARG APP_LOCATION=https://edas-hz.oss-cn-hangzhou.aliyuncs.com/prod/demo/HSF_PROVIDER.war
#####----> Kasus ketiga: deploy file dari penyimpanan lokal.
#ARG APP_LOCATION=/Users/yanliang.lyl/workspace/java/demo/HSF_PROVIDER.war
# Lalu unduh paket ke /home/admin/app/
ADD ${APP_LOCATION} ${APP_HOME}/
# Direktori kerja default diatur ke /home/admin
# WORKDIR /home/admin
# Titik masuk diatur ke /home/admin/bin/start.sh,
# yang termasuk di dalam image dasar (apaas/edas-centos-openjdk8-alitomcat8)
# CMD ["/home/admin/bin/start.sh"] Contoh Dockerfile untuk aplikasi Spring Cloud atau Dubbo
# Menggunakan centos7 + openjdk8 + tomcat8 sebagai dasar
FROM apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas:latest
# Secara default letakkan paket aplikasi Anda di /home/admin/app/
ENV APP_HOME /home/admin/app/
##### GANTI FILE PAKET ANDA SECARA SEDERHANA
#####----> Kasus pertama: deploy file fat-jar
ARG APP_LOCATION=https://edas-hz.oss-cn-hangzhou.aliyuncs.com/prod/demo/DUBBO_PROVIDER.jar
#####----> Kasus kedua: deploy file war, cukup ubah nama file yang diinginkan.
#ARG APP_LOCATION=https://edas-hz.oss-cn-hangzhou.aliyuncs.com/prod/demo/DUBBO_PROVIDER.war
#####----> Kasus ketiga: deploy file dari penyimpanan lokal.
#ARG APP_LOCATION=/Users/yanliang.lyl/workspace/java/demo/SPRINT_CLOUD_PROVIDER.war
# Lalu unduh paket ke /home/admin/app/
ADD ${APP_LOCATION} ${APP_HOME}/
Deskripsi gambar dasar EDAS
Gunakan salah satu gambar dasar berikut sesuai dengan lingkungan runtime aplikasi Anda.
Nama gambar | Versi OS | Versi Java | Versi Tomcat | Versi Pandora | Deskripsi |
apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas | CentOS 7 | OpenJDK 1.8 | 8.5.78 | N/A | Gambar ini sama dengan apaas/edas-centos-openjdk8-tomcat8. Nomor versi terbaru: latest. |
apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas-centos-openjdk8-tomcat8 | CentOS 7 | OpenJDK 1.8 | 8.5.78 | N/A | Kami sarankan Anda menggunakan gambar ini untuk aplikasi Spring Cloud atau Dubbo umum. Nomor versi terbaru: latest. |
apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas-centos-openjdk8-tomcat7 | CentOS 7 | OpenJDK 1.8 | 7.0.93 | N/A | Kami sarankan Anda menggunakan gambar ini untuk aplikasi Spring Cloud atau Dubbo umum yang berjalan di Tomcat 7.x. Nomor versi terbaru: latest. |
apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas-centos-openjdk8-alitomcat8 | CentOS 7 | OpenJDK 1.8 | 8.5.37 | 3.5.9 | Kami sarankan Anda menggunakan gambar ini untuk aplikasi HSF yang berjalan di Tomcat 8.x. Nomor versi terbaru: latest. |
apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas-centos-openjdk8-alitomcat7 | CentOS 7 | OpenJDK 1.8 | 7.0.92 | 3.5.9 | Kami sarankan Anda menggunakan gambar ini untuk aplikasi HSF yang berjalan di Tomcat 7.x. Nomor versi terbaru: latest. |
apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas-centos-openjdk8-alitomcat8-v4 | CentOS 7 | OpenJDK 1.8 | 8.5.37 | 4.0.2 | Kami sarankan Anda menggunakan gambar ini untuk aplikasi HSF 4.0 yang berjalan di Tomcat 8.x. Nomor versi terbaru: latest. |
apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas-centos-openjdk8-alitomcat7-v4 | CentOS 7 | OpenJDK 1.8 | 7.0.92 | 4.0.2 | Kami sarankan Anda menggunakan gambar ini untuk aplikasi HSF 4.0 yang berjalan di Tomcat 7.x. Nomor versi terbaru: latest. |
paas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas-centos7-openjdk17-tomcat9 | CentOS 7 | OpenJDK 17 | 9.0.70 | N/A | Gambar dasar dibangun dengan OpenJDK 17 dan Tomcat 9.0.70. Nomor versi terbaru: latest. |
apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas-centos7-openjdk17-tomcat10 | CentOS 7 | OpenJDK 17 | 10.1.41 | N/A | Gambar dasar dibangun dengan OpenJDK 17 dan Tomcat 10.1.41. Nomor versi terbaru: latest. |
Untuk gambar lainnya, kunjungi repositori gambar resmi aPaaS Docker Hub. Jika Anda memerlukan gambar dasar tambahan, bergabunglah dengan grup DingTalk (ID: 31723701) untuk mendapatkan dukungan teknis. Untuk pertanyaan tentang gambar dasar, lihat Dockerfile gambar dasar di GitHub.
Gambar kustom: Gunakan OpenJDK terbaru
Anda dapat menentukan pengaturan kustom dalam Dockerfile standar sesuai kebutuhan bisnis Anda.
Tingkatkan OpenJDK: Unduh dan instal OpenJDK terbaru di Dockerfile. Contoh berikut menunjukkan cara mengunduh dan menginstal OpenJDK 9.
Saat menggunakan gambar kustom untuk menyebarkan aplikasi, EDAS mendukung OpenJDK 21.
# Uninstall OpenJDK versi sebelumnya, lalu unduh dan instal OpenJDK 9.
RUN yum erase -y java; yum -y install java-1.9.0-openjdk-devel Gambar kustom: Tingkatkan versi Kontainer EDAS untuk aplikasi HSF
Untuk aplikasi HSF yang disebarkan di kluster Container Service for Kubernetes (ACK), tingkatkan versi Kontainer EDAS untuk menggunakan fitur baru middleware atau memperbaiki masalah yang mungkin terjadi di versi sebelumnya. Ikuti langkah-langkah berikut:
Masuk ke .
Di panel navigasi kiri, pilih .
Di halaman Applications, klik Create Application. Di bagian Application Runtime Environment dari langkah Basic Information, konfigurasikan parameter Pandora Version dan Ali-Tomcat Version.
Ganti nomor versi di Dockerfile, seperti 3.5.4.
# Tentukan versi Pandora. ENV UPGRADED_CONTAINER_VERSION 3.5.4 RUN /home/admin/bin/upgradecontainer.shBuat dan publikasikan gambar aplikasi lagi.
Gambar kustom: Ubah parameter startup JVM di dalam gambar
Variabel lingkungan JAVA_OPTS digunakan untuk mengoper parameter Java Virtual Machine (JVM) berdasarkan gambar dasar. Contoh berikut menunjukkan cara memodifikasi parameter startup JVM:
FROM apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas:latest
# Konfigurasikan parameter JVM ENV
JAVA_OPTS="\
-Xmx3550m \
-Xms3550m \
-Xmn2g \
-Xss128k" Gambar kustom: Ubah konfigurasi aplikasi Spring Boot
Untuk aplikasi FatJar yang dikembangkan berdasarkan gambar dasar EDAS, Anda dapat memodifikasi konfigurasi startup Tomcat, seperti path konteks, port startup, dan parameter lainnya. Parameter ini diteruskan melalui variabel lingkungan APP_ARGS. Contoh berikut menunjukkan cara memodifikasi konfigurasi startup:
FROM apaas-registry.cn-hangzhou.cr.aliyuncs.com/apaas/edas:latest
# Konfigurasi default di gambar dasar:
# - Path konteks (/) digunakan.
# - Pengkodean URI seragam (URI) dalam ISO-8859-1 digunakan.
# - Aplikasi dimulai pada port 8080.
# - Jumlah maksimum kolam thread yang digunakan oleh Tomcat adalah 400.
# Anda juga dapat menulis ulang variabel lingkungan APP_ARGS untuk memodifikasi konfigurasi default. Contoh:
ENV APP_ARGS="--server.context-path=/ \
--server.tomcat.uri-encoding=ISO-8859-1 \
--server.port=8080 \
--server.tomcat.max-threads=400"Bangun gambar lokal
Akses direktori tempat Dockerfile berada menggunakan alat baris perintah lokal. Jalankan salah satu perintah docker build berikut untuk membangun gambar:
docker build -t [Nama label, sebaiknya nama aplikasi]:[Versi]. docker build -t [Nama label, sebaiknya nama aplikasi]:[Versi] -f /path/to/custom_dockerfile_name. # Perintah ini berlaku jika Dockerfile yang Anda buat berada di lokasi lain atau nama file bukan Dockerfile.Contoh:
docker build -t hsf-provider:1.0.0 .Kemudian, jalankan perintah
docker images | grep <Nama label gambar>untuk melihat gambar lokal yang telah dibungkus.
Unggah gambar ke repositori gambar
Unggah gambar aplikasi yang dibuat dan dibangun di komputer lokal Anda ke repositori gambar kontainer Alibaba Cloud.
Untuk mengunggah gambar ke repositori, ikuti langkah-langkah berikut: Masuk ke konsol Container Registry. Di halaman Instances, beralihlah ke wilayah aplikasi yang dibuat di EDAS atau wilayah tempat Anda ingin membuat aplikasi. Pilih instance sesuai kebutuhan. Di panel navigasi kiri, klik Repositories. Lihat daftar repositori gambar dan pilih repositori gambar yang ada atau buat repositori gambar baru untuk menyimpan gambar aplikasi yang telah Anda bungkus. Kami sarankan Anda menggunakan nama aplikasi sebagai nama repositori untuk kemudahan identifikasi.
Untuk mengunggah gambar lokal ke repositori gambar, jalankan perintah yang digunakan untuk mendorong gambar ke Container Registry. Anda dapat melihat perintah-perintah ini di halaman Details dari repositori gambar tertentu.
docker login --username=[Nama pengguna saat ini] registry.[region_id].aliyuncs.com # Masukkan kata sandi tetap atau sementara yang digunakan sebagai kredensial akses untuk instance default di Container Registry. Kata sandi ini bukan kata sandi untuk Akun Alibaba Cloud Anda. docker tag [ID gambar aplikasi lokal] registry.[region_id].aliyuncs.com/[Nama namespace]/[Nama repositori]:[Versi gambar]
docker push registry.[region_id].aliyuncs.com/[Nama namespace]/[Nama repositori]:[Versi gambar] Contoh:
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 Untuk mempercepat jaringan repositori gambar Alibaba Cloud, ikuti langkah-langkah berikut: Masuk ke konsol Container Registry. Di panel navigasi kiri, klik Image Tool. Kemudian, klik Image Accelerator. Di halaman Image Accelerator, peroleh nilai parameter Booster URL.
Lampiran: Variabel lingkungan selama runtime
Jika Anda membuat gambar kustom menggunakan Dockerfile, variabel lingkungan tertentu secara otomatis digunakan oleh EDAS selama runtime. Tabel berikut menjelaskan variabel lingkungan ini.
Kunci variabel lingkungan | Tipe | Deskripsi |
POD_IP | String | Alamat IP pod. |
EDAS_APP_ID | String | ID aplikasi EDAS. |
EDAS_PROJECT_NAME | String | Parameter ini sama dengan EDAS_APP_ID. Parameter ini digunakan untuk parsing jejak. |
EDAS_JM_CONTAINER_ID | String | Parameter ini sama dengan EDAS_ECC_ID. Parameter ini digunakan untuk parsing jejak. |
EDAS_CATALINA_OPTS | String | Parameter CATALINA_OPTS yang diperlukan selama runtime middleware. |
CATALINA_OPTS | String | Parameter ini sama dengan EDAS_CATALINA_OPTS. Parameter ini digunakan sebagai parameter startup default Tomcat. |
CATALINA_HOME | String | Path Tomcat. |
PANDORA_LOCATION | String | Path Pandora, yang dapat dilihat di aplikasi HSF. |
Kami sarankan Anda tidak menggunakan file /home/admin/.spas_key/default. File ini ditimpa saat pod berjalan.