Panduan Pasukan Lucee MY

Deploy Lucee dengan Docker: Panduan Lengkap

Deploy Lucee dengan Docker: imej rasmi lucee/lucee, docker compose dengan MySQL, volume berterusan, pemboleh ubah persekitaran dan amalan keselamatan.

Deploy Lucee dengan Docker: Panduan Lengkap
0
Kandungan

Deploy Lucee dengan Docker: Panduan Lengkap

Penulis: Thalhah · Tarikh: 16 Oktober 2026

Deploy Lucee dengan Docker bermaksud menjalankan enjin CFML di dalam bekas menggunakan imej rasmi lucee/lucee, yang dibina di atas Apache Tomcat dan membundel Java serta Tomcat bersama. Dengan Docker Compose anda boleh membawa Lucee dan MySQL dalam satu fail konfigurasi, memetakan webroot dan konfigurasi sebagai isipadu berterusan, supaya deploy konsisten di mana-mana persekitaran. Artikel ini merangkumi imej rasmi, contoh docker compose, pemboleh ubah persekitaran, dan amalan keselamatan.

Mengapa Gunakan Docker untuk Lucee

Docker membungkus Lucee bersama semua kebergantungannya supaya aplikasi berjalan sama di mesin pembangun, pelayan ujian dan pengeluaran. Dokumentasi rasmi menyenaraikan empat manfaat utama: konsistensi, kebolehskalaan, kecekapan sumber dan pengasingan. Bekas berkongsi kernel hos, jadi ia lebih ringan daripada mesin maya, dan aplikasi berbeza pada hos yang sama tidak berkonflik.

Imej Rasmi Lucee dan Cara Tag Berfungsi

Imej rasmi tersedia di Docker Hub sebagai lucee/lucee, dibina di atas imej Tomcat Docker. Tag mengikut konvensyen penamaan ini:

LUCEE_VERSION[-RELEASE_TYPE][-light][-nginx][-TOMCAT_VERSION-JRE_VERSION]

Bahagian RELEASE_TYPE diisi SNAPSHOT, RC atau BETA untuk binaan bukan keluaran, dan diabaikan untuk keluaran rasmi. Akhiran -light ialah binaan dengan JAR Light Lucee tanpa sebarang sambungan, jadi anda perlu memasang pemacu pangkalan data dan ORM secara berasingan. Akhiran -nginx ialah binaan dengan pelayan web NGINX dibundel dan dikonfigurasi. Bahagian terakhir membolehkan anda memilih kombinasi Tomcat dan Java, contohnya tomcat9.0-jre21-temurin-jammy. Imej ini berasaskan imej Tomcat Docker yang menggunakan edaran Temurin (OpenJDK) di atas Ubuntu.

Siri 7.1 menggunakan Tomcat 11.0 dengan JDK 25 sebagai garis dasar, seperti yang kelihatan pada tag penuh binaan snapshot. Untuk pengeluaran, pilih tag versi tertentu dan bukannya latest supaya deploy anda boleh diulang dengan tepat.

Menjalankan Bekas Pertama

Cara paling cepat untuk melihat Lucee berjalan ialah menarik imej dan menjalankannya:

docker pull lucee/lucee:latest
docker run -d -p 8888:8888 lucee/lucee:latest

Arahan kedua menjalankan bekas secara latar belakang dan memetakan port 8888 bekas ke port 8888 hos. Buka http://localhost:8888 untuk melihat Lucee berjalan. Tomcat di dalam imej mendengar pada port 8888, dan varian NGINX mendengar pada port 80. Port 8080 didedahkan kepada bekas yang dipaut tetapi tidak digunakan, jadi anda mesti menerbitkan port 8888 untuk mengakses Tomcat.

Docker Compose: Lucee dan MySQL

Untuk aplikasi sebenar, gunakan Docker Compose untuk membawa Lucee dan pangkalan data bersama:

services:
  lucee:
    image: lucee/lucee:6.2
    ports:
      - "8888:8888"
    volumes:
      - ./www:/var/www
      - ./config/lucee:/opt/lucee/web
    environment:
      LUCEE_JAVA_OPTS: "-Xms256m -Xmx1024m"

  mysql:
    image: mysql:8.0
    environment:
      MYSQL_DATABASE: myapp
      MYSQL_USER: app_user
      MYSQL_PASSWORD: tukar-kata-laluan-ini
      MYSQL_ROOT_PASSWORD: tukar-juga-ini
    volumes:
      - dbdata:/var/lib/mysql

volumes:
  dbdata:

Folder ./www pada mesin anda dipetakan ke /var/www di dalam bekas, iaitu webroot lalai. Folder ./config/lucee dipetakan ke /opt/lucee/web, lokasi konfigurasi Lucee untuk laman lalai. Untuk menyambungkan aplikasi CFML anda kepada MySQL, konfigurasikan datasource dengan hos mysql dan port 3306, seperti yang diterangkan dalam panduan konfigurasi datasource.

Isipadu Berterusan: Webroot dan Konfigurasi

Lokasi folder penting dalam imej ini adalah seperti berikut:

LokasiKandungan
/var/wwwWebroot untuk laman lalai
/opt/lucee/webKonfigurasi Lucee untuk laman lalai
/opt/lucee/server/lucee-server/contextKonteks pelayan Lucee
/usr/local/tomcat/confKonfigurasi Tomcat
/usr/local/tomcat/logsLog Tomcat
/opt/lucee/web/logsLog Lucee untuk laman lalai

Mapkan folder yang perlu kekal sebagai isipadu bernama atau pemetaan fail hos. Satu nasihat prestasi penting daripada dokumentasi: elakkan menjadikan direktori di bawah lucee-server sebagai isipadu Docker, kerana overhead sistem fail hos akan merosot prestasi.

Pemboleh Ubah Persekitaran

Imej ini menyokong beberapa pemboleh ubah persekitaran yang berguna:

  • LUCEE_ADMIN_PASSWORD: menetapkan kata laluan Lucee Administrator semasa permulaan.
  • LUCEE_VERSION: jika ditetapkan, Lucee menjalankan versi ini tanpa mengira versi yang dipasang.
  • LUCEE_JAVA_OPTS: parameter JVM tambahan untuk Tomcat, digunakan oleh /usr/local/tomcat/bin/setenv.sh. Nilai lalainya ialah "-Xms64m -Xmx512m".

Untuk menetapkan zon waktu bekas, guna pemboleh ubah TZ, contohnya TZ=Asia/Kuala_Lumpur, satu pemboleh ubah standard yang dihormati oleh sistem pengendalian berasaskan Ubuntu di dalam imej. Mulai Lucee 6.2, anda juga boleh mengarahkan log ke konsol Docker dengan LUCEE_LOGGING_FORCE_APPENDER=console, dan menukar aras log dengan LUCEE_LOGGING_FORCE_LEVEL. Imej ini turut menyediakan LUCEE_BUILD=true untuk memanaskan Lucee semasa fasa bina imej, yang menjalankan fungsi onBuild dalam Server.cfc untuk tugas persediaan seperti mengesahkan konfigurasi dan menyusun sumber.

Had Memori dan Pemproses

Bekas Lucee ialah proses Java, jadi memori yang anda berikan kepada JVM mesti sepadan dengan had bekas. Tetapkan saiz heap melalui LUCEE_JAVA_OPTS dengan -Xms dan -Xmx, dan pastikan had memori bekas lebih tinggi daripada -Xmx supaya JVM tidak dibunuh oleh kernel. Gunakan bendera docker run --memory dan --cpus, atau medan mem_limit dan cpus dalam fail Compose, untuk mengehadkan sumber bekas. Imej ini juga melakukan beberapa pengoptimuman Java secara lalai: JVM ditetapkan untuk menggunakan /dev/urandom sebagai sumber entropi bagi nombor rawak selamat bagi mengelakkan Tomcat tersekat semasa permulaan, dan Tomcat dikonfigurasi untuk melangkau pengimbasan fail Jar semasa permulaan.

Menyimpan Konfigurasi Supaya Tidak Hilang

Data di dalam bekas hilang apabila bekas dibuang, jadi apa-apa yang anda ubah melalui Lucee Administrator akan hilang jika ia tidak disimpan di luar bekas. Ada dua pendekatan. Pertama, petakan /opt/lucee/web sebagai isipadu berterusan supaya tetapan Lucee untuk laman lalai kekal. Kedua, automasikan konfigurasi dengan fail .CFConfig.json yang disalin ke dalam imej atau dipetakan sebagai isipadu, supaya datasource dan tetapan lain diterapkan semasa permulaan tanpa perlu menyentuh Administrator secara manual.

Membina imej anda sendiri dengan konfigurasi terbina dalam juga menjadikan deploy lebih boleh diulang. Fail Dockerfile ringkas seperti ini menyalin kod dan konfigurasi ke dalam imej:

FROM lucee/lucee:6.2
COPY config/lucee/ /opt/lucee/web/
COPY www /var/www

Aliran Deploy dan Naik Taraf yang Selamat

Aliran deploy yang selamat bermula dengan imej versi tetap, bukan latest. Bina imej, jalankan ujian, kemudian gantikan bekas lama dengan bekas baharu. Kerana kod dan konfigurasi anda berada dalam isipadu atau dalam imej, naik taraf Lucee bermakna menukar tag imej dan mencipta semula bekas.

Sebelum naik taraf, buat sandaran isipadu pangkalan data dan konfigurasi. Naik taraf antara versi utama Lucee boleh membawa perubahan yang mematahkan kod, contohnya perpindahan dari javax ke jakarta. Rujuk panduan migrasi dari ColdFusion ke Lucee dan Lucee 7 dan masa depan untuk memahami perubahan versi sebelum anda naik taraf. Uji imej baharu pada persekitaran pementasan dahulu, kemudian gulingkan ke pengeluaran.

Amalan Keselamatan: Bekas Tanpa Root

Imej rasmi tidak menukar kepada pengguna tanpa keistimewaan secara lalai, jadi proses di dalam bekas berjalan sebagai pengguna lalai imej asas Tomcat, iaitu root. Untuk mengurangkan risiko, jalankan bekas sebagai pengguna tanpa keistimewaan. Dalam Compose, tambah medan user pada perkhidmatan Lucee, dan pastikan isipadu yang dipetakan boleh ditulis oleh pengguna itu.

Amalan keselamatan lain termasuk: jangan gunakan LUCEE_ADMIN_PASSWORD dalam pengeluaran kerana ia bukan konfigurasi yang selamat; sekat akses kepada Lucee Administrator melalui penapisan IP atau URL; dan gunakan varian NGINX yang secara lalai menafikan akses kepada Administrator dalam default.conf. Ikut panduan keselamatan web untuk mengukuhkan aplikasi CFML anda, dan semak Lockdown Guide Lucee untuk mengeraskan pelayan. Untuk kaitan prestasi dan cache dalam bekas, baca panduan caching dan prestasi.

Soalan Lazim (FAQ)

Apakah imej Docker rasmi Lucee?

Imej rasmi ialah lucee/lucee di Docker Hub, dibina di atas Apache Tomcat dan membundel Java serta Tomcat bersama.

Bagaimana cara menjalankan Lucee dengan Docker dengan cepat?

Jalankan docker run -d -p 8888:8888 lucee/lucee:latest, kemudian buka http://localhost:8888.

Bagaimana cara konfigurasi datasource dalam Docker Lucee?

Guna fail .CFConfig.json untuk automasi, atau akses Lucee Administrator di /lucee/admin/ selepas bekas berjalan dan petakan /opt/lucee/web sebagai isipadu supaya tetapan kekal.

Di manakah webroot dalam imej Lucee?

Webroot untuk laman lalai ialah /var/www di dalam bekas. Petakan folder kod anda ke /var/www melalui isipadu.

Bagaimana cara menetapkan memori JVM dalam bekas Lucee?

Guna pemboleh ubah LUCEE_JAVA_OPTS, contohnya "-Xms256m -Xmx1024m", dan pastikan had memori bekas lebih tinggi daripada nilai -Xmx.

Sumber

0 komen

Log masuk untuk menjawab atau memberi komen.

Log masuk