Ini adalah image Docker yang menyediakan pilihan proxy Minecraft, seperti BungeeCord dan Velocity. Ini dimaksudkan untuk digunakan dalam kombinasi dengan kontainer itzg/minecraft-server.
Saat menggunakan gambar server itzg/minecraft-server Anda dapat menonaktifkan mode online, yang diperlukan oleh bungeecord, dengan mengatur ONLINE_MODE=FALSE
, seperti
docker run ... -e ONLINE_MODE=FALSE itzg/minecraft-server
Berikut ini adalah contoh yang dapat dimulai dengan docker compose up -d
:
services :
mc :
image : itzg/minecraft-server
environment :
EULA : " TRUE "
ONLINE_MODE : " FALSE "
volumes :
- mc-data:/data
proxy :
image : itzg/mc-proxy
environment :
BUNGEE_JAR_REVISION : " 1 "
CFG_MOTD : Powered by Docker
REPLACE_ENV_VARIABLES : " true "
ports :
- " 25565:25577 "
volumes :
- ./config.yml:/config/config.yml
- proxy-data:/server
volumes :
mc-data :
proxy-data :
Gambar ini berisi mc-monitor dan menggunakan perintah status
untuk terus memeriksa kontainer. Hal itu dapat diamati dari kolom STATUS
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b418af073764 mc "/usr/bin/run-bungeecord.sh" 43 seconds ago Up 41 seconds (healthy) 0.0.0.0:25577->25577/tcp mc
Anda juga dapat menanyakan kesehatan kontainer dengan cara yang ramah skrip:
> docker container inspect -f "{{.State.Health.Status}}" mc
healthy
JENIS = BUNGEECORD
Jenis servernya. Jika tipe disetel ke CUSTOM
, pengaturan lingkungan BUNGEE_JAR_URL
diperlukan.
Nilai yang mungkin:
BUNGEECORD
WATERFALL
VELOCITY
CUSTOM
MEMORI =512m
Ukuran tumpukan memori Java untuk ditentukan ke JVM. Menyetel ini ke string kosong akan membiarkan JVM menghitung ukuran heap dari batas memori yang dinyatakan oleh container. Pastikan untuk mempertimbangkan menambahkan -XX:MaxRAMPercentage=
(dengan
diganti) ke JVM_XX_OPTS
, dengan default JVM adalah 25%.
IKON
Menyetel ini ke URL gambar akan mengunduh dan (jika diperlukan) mengonversi ikon menjadi PNG 64x64, dan menempatkannya di /server/server-icon.png
.
OVERRIDE_ICON
Akan menimpa file server-icon.png yang sudah ada sebelumnya di direktori /server jika ICON
disetel.
INIT_MEMORY =${MEMORY}
Dapat diatur untuk menggunakan ukuran heap awal yang berbeda.
MAX_MEMORY =${MEMORY}
Dapat diatur untuk menggunakan ukuran heap maksimal yang berbeda.
JVM_OPTS / JVM_XX_OPTS
Opsi tambahan yang dipisahkan spasi untuk diteruskan ke JVM, di mana JVM_XX_OPTS
akan ditambahkan ke baris perintah Java sebelum JVM_OPTS
.
JARINGANADDRESS_CACHE_TTL =60
Jumlah detik untuk menyimpan cache pencarian alamat jaringan yang berhasil. Nilai yang lebih rendah berguna ketika wadah server Minecraft dimulai ulang dan/atau dijadwal ulang dan ditetapkan ulang alamat IP wadah baru.
PLUGIN
Digunakan untuk mengunduh daftar url *.jar yang dipisahkan koma ke folder plugin.
-e PLUGINS=https://www.example.com/plugin1.jar,https://www.example.com/plugin2.jar
SPIGET_PLUGIN
Variabel SPIGET_PLUGINS
dapat diatur dengan daftar ID sumber daya SpigotMC yang dipisahkan koma untuk mengunduh plugin SpigotMC secara otomatis menggunakan API spiget. Sumber daya berupa file zip akan diperluas ke direktori plugin dan sumber daya yang berupa file jar akan dipindahkan ke sana.
CATATAN: variabel sengaja dieja SPIG E T dengan huruf "E"
ID sumber daya dapat ditemukan dari bagian numerik URL setelah nama pendek dan titik. Misal IDnya 313 dari
https://www.spigotmc.org/resources/bungeetablistplus.313/
===
MODRINTH_PROJECTS
Daftar slug proyek (nama pendek) atau ID yang dipisahkan koma atau baris baru. ID proyek terletak di bagian "Informasi teknis". Siput adalah bagian dari URL halaman setelah /mod/
:
https://modrinth.com/mod/fabric-api
----------
|
+-- project slug
Selain itu, versi/tipe tertentu dapat dideklarasikan menggunakan simbol titik dua dan id/tipe versi setelah slug proyek. Id versi dapat ditemukan di bagian 'Metadata'. Jenis versi yang valid adalah release
, beta
, alpha
.
Resolusi ketergantungan dapat disesuaikan dengan menyetel MODRINTH_DOWNLOAD_DEPENDENCIES
ke none
, optional
, atau required
(default).
CATATAN Variabel MINECRAFT_VERSION
harus disetel ke versi Minecraft yang sesuai.
ENABLE_RCON
Aktifkan server rcon (menggunakan plugin pihak ketiga agar berfungsi).
BUNGEECORD
, WATERFALL
, dan CUSTOM
VELOCITY
RCON_PORT
Tentukan port untuk rcon
RCON_PASSWORD
Tentukan kata sandi untuk rcon
BUNGEE_JOB_ID = LastStableBuild
ID tugas Jenkins dari artefak yang akan diunduh dan dijalankan dan digunakan saat mendapatkan nilai default BUNGEE_JAR_URL
BUNGEE_JAR_REVISI
Defaultnya adalah nilai ${BUNGEE_JOB_ID}
, tetapi dapat diatur ke nilai yang bertambah secara sewenang-wenang untuk memaksa peningkatan versi file jar BungeeCord yang diunduh.
BUNGEE_BASE_URL
Bawaan ke:
BUNGEECORD
): https://ci.md-5.net/job/BungeeCordWATERFALL
): https://papermc.io/ci/job/Waterfall/ Digunakan untuk mendapatkan nilai default BUNGEE_JAR_URL
BUNGEE_JAR_URL
Jika disetel, dapat menentukan URL BungeeCord.jar khusus yang sepenuhnya memenuhi syarat; namun, Anda tidak akan dapat mereferensikan variabel lingkungan lain dari dalam docker run
file penulisan. Defaultnya adalah:
BUNGEECORD
): ${BUNGEE_BASE_URL}/${BUNGEE_JOB_ID}/artifact/bootstrap/target/BungeeCord.jar
Ini lebih diutamakan daripada BUNGEE_JAR_FILE
.
BUNGEE_JAR_FILE
Untuk TYPE=CUSTOM
, memungkinkan pengaturan JAR BungeeCord khusus yang terletak di dalam wadah.
Harus berupa jalur yang valid dari file yang ada.
WATERFALL_VERSION =terbaru
Untuk TYPE=WATERFALL
, memungkinkan pengunduhan aliran rilis tertentu dari Waterfall.
WATERFALL_BUILD_ID =terbaru
Untuk TYPE=WATERFALL
, memungkinkan pengunduhan versi Waterfall tertentu dalam versi tertentu.
VELOCITY_VERSION = terbaru
Untuk TYPE=VELOCITY
, menentukan versi Velocity yang akan diunduh dan dijalankan.
VELOCITY_BUILD_ID =terbaru
Untuk TYPE=VELOCITY
, memungkinkan pengunduhan build Velocity tertentu dalam versi tertentu.
HEALTH_HOST =host lokal
Memungkinkan untuk mengonfigurasi host yang dihubungi untuk pemeriksaan kesehatan kontainer.
HEALTH_USE_PROXY = salah
Setel ke "benar" saat menggunakan opsi proxy_protocol
Bungeecord
ENABLE_JMX =salah
Untuk mengaktifkan JMX jarak jauh, seperti untuk pembuatan profil dengan VisualVM atau JMC, tambahkan variabel lingkungan ENABLE_JMX=true
, atur JMX_HOST
ke IP/host yang menjalankan kontainer Docker, dan tambahkan penerusan port TCP port 7091
/server
Direktori kerja tempat BungeeCord dimulai. Ini adalah direktori tempat config.yml
-nya akan dimuat.
/plugin
Plugin akan disalin dari direktori ini sebelum server dimulai.
/config
Isi direktori ini akan disinkronkan ke direktori /server
. Placeholder variabel dalam file akan diproses seperti dijelaskan pada bagian di bawah kecuali REPLACE_ENV_DURING_SYNC
disetel ke "false".
25577
Port pendengaran BungeeCord, yang biasanya ingin Anda petakan portnya ke port server Minecraft standar 25565 menggunakan:
-p 25565:25577
Tabel berikut menunjukkan versi Java dan arsitektur CPU yang didukung oleh tag gambar:
Menandai | Jawa | Arsitektur |
---|---|---|
terbaru | 17 | amd64, lengan64, lenganv7 |
java8 | 8 | amd64, lengan64, lenganv7 |
java11 | 11 | amd64, lengan64, lenganv7 |
RCON diaktifkan secara default, sehingga Anda dapat exec
ke dalam container untuk mengakses konsol server Bungeecord:
docker exec -i mc rcon-cli
Catatan: -i
diperlukan untuk penggunaan interaktif rcon-cli.
Untuk menjalankan perintah satu kali yang sederhana, seperti menghentikan server Bungeecord, teruskan perintah sebagai argumen ke rcon-cli
, seperti:
docker exec mc rcon-cli en
-i
tidak diperlukan dalam kasus ini.
Untuk melampirkan dan berinteraksi dengan server Bungeecord, tambahkan -it
saat memulai penampung, seperti
docker run -d -it -p 25565:25577 --name mc itzg/mc-proxy
Dengan itu Anda dapat terhubung dan berinteraksi kapan saja menggunakan
docker attach mc
lalu Control-p Control-q untuk melepaskan .
Untuk akses jarak jauh, konfigurasikan daemon Docker Anda untuk menggunakan soket tcp
(seperti -H tcp://0.0.0.0:2375
) dan lampirkan dari komputer lain:
docker -H $HOST:2375 attach mc
Kecuali Anda menggunakan LAN rumah/pribadi, Anda harus mengaktifkan akses TLS.
Panduan Konfigurasi BungeeCord
Untuk menginstal semua konten server (jar, mod, plugin, konfigurasi, dll.) dari file zip atau tgz, lalu atur GENERIC_PACK
ke jalur penampung atau URL file arsip.
Jika beberapa paket umum perlu diterapkan secara bersamaan, setel GENERIC_PACKS
sebagai gantinya, dengan daftar jalur file arsip dan/atau URL ke file yang dipisahkan koma.
Untuk menghindari pengulangan, setiap entri akan diawali dengan nilai GENERIC_PACKS_PREFIX
dan diakhiri dengan nilai GENERIC_PACKS_SUFFIX
, keduanya bersifat opsional. Misalnya variabel berikut
GENERIC_PACKS=configs-v9.0.1,mods-v4.3.6
GENERIC_PACKS_PREFIX=https://cdn.example.org/
GENERIC_PACKS_SUFFIX=.zip
akan diperluas ke https://cdn.example.org/configs-v9.0.1.zip,https://cdn.example.org/mods-v4.3.6.zip
.
Terkadang Anda memiliki mod atau plugin yang memerlukan informasi konfigurasi yang hanya tersedia saat runtime. Misalnya jika Anda perlu mengonfigurasi plugin untuk terhubung ke database, Anda tidak ingin menyertakan informasi ini di repositori Git atau image Docker Anda. Atau mungkin Anda memiliki beberapa informasi runtime seperti nama server yang perlu disetel di file konfigurasi Anda setelah container dimulai.
Untuk kasus tersebut, terdapat opsi untuk mengganti variabel yang ditentukan di dalam konfigurasi Anda dengan variabel lingkungan yang ditentukan pada waktu proses container.
Jika Anda menyetel variabel lingkungan REPLACE_ENV_VARIABLES
ke TRUE
skrip startup akan menelusuri semua file di dalam volume /server
Anda dan mengganti variabel yang cocok dengan variabel lingkungan yang Anda tentukan. Variabel yang ingin Anda ganti harus dideklarasikan sebagai ${YOUR_VARIABLE}
, yang umum terjadi pada bahasa skrip shell.
Dengan REPLACE_ENV_VARIABLE_PREFIX
Anda dapat menentukan awalan, yang defaultnya adalah CFG_
, agar hanya cocok dengan variabel lingkungan yang telah ditentukan sebelumnya.
Jika Anda ingin menggunakan file untuk suatu nilai (seperti saat menggunakan rahasia Docker), Anda dapat menambahkan akhiran _FILE
ke nama variabel Anda (dalam perintah run). Misalnya, ${CFG_PASSWORD_FILE}
akan diganti dengan konten file yang ditentukan oleh variabel lingkungan CFG_PASSWORD_FILE
.
Berikut adalah contoh lengkap di mana kita ingin mengganti nilai di dalam database.yml
.
---
database :
host : ${CFG_DB_HOST}
name : ${CFG_DB_NAME}
password : ${CFG_DB_PASSWORD}
Seperti inilah tampilan file docker-compose.yml
Anda:
version : " 3.8 "
# Other docker-compose examples in /examples
services :
proxy :
image : itzg/mc-proxy
ports :
- " 25577:25577 "
volumes :
- " proxy:/server "
environment :
# enable env variable replacement
REPLACE_ENV_VARIABLES : " TRUE "
# define an optional prefix for your env variables you want to replace
ENV_VARIABLE_PREFIX : " CFG_ "
# and here are the actual variables
CFG_DB_HOST : " http://localhost:3306 "
CFG_DB_NAME : " minecraft "
CFG_DB_PASSWORD_FILE : " /run/secrets/db_password "
restart : always
volumes :
proxy :
secrets :
db_password :
file : ./db_password
Isi db_password
:
ug23u3bg39o-ogADSs
Patch berbasis jalur JSON dapat diterapkan ke satu atau lebih file yang ada dengan mengatur variabel PATCH_DEFINITIONS
ke jalur direktori yang berisi satu atau lebih file json definisi patch atau file json set patch.
Bidang file
dan value
dari definisi patch mungkin berisi placeholder variabel ${...}
. Variabel lingkungan yang diizinkan di placeholder dapat dibatasi dengan menyetel REPLACE_ENV_VARIABLE_PREFIX
, yang defaultnya adalah "CFG_".
Contoh berikut menunjukkan file set patch di mana berbagai bidang di file konfigurasi paper.yaml
dapat dimodifikasi dan ditambahkan:
{
"patches" : [
{
"file" : " /data/paper.yml " ,
"ops" : [
{
"$set" : {
"path" : " $.verbose " ,
"value" : true
}
},
{
"$set" : {
"path" : " $.settings['velocity-support'].enabled " ,
"value" : " ${CFG_VELOCITY_ENABLED} " ,
"value-type" : " bool "
}
},
{
"$put" : {
"path" : " $.settings " ,
"key" : " my-test-setting " ,
"value" : " testing "
}
}
]
}
]
}
Mendukung format file:
Gambar ini dapat dijalankan sebagai pengguna non-root tetapi memerlukan volume /server
terlampir yang dapat ditulis oleh uid tersebut, seperti:
docker run ... -u $uid -v $(pwd)/data:/server itzg/mc-proxy
Tag gambar latest
didasarkan pada Java 21, namun tag gambar alternatif tersedia untuk dijalankan dengan versi Java yang berbeda.
Gambar varian Java dapat digunakan seperti yang ditunjukkan di sini:
itzg/mc-proxy:{variant}
atau menggunakan versi rilis, seperti 2024.5.0
itzg/mc-proxy:{release}-{variant}
Variasi | Versi Jawa | Jenis CPU |
---|---|---|
terbaru | 21 | amd64, lengan64 |
java21 | 21 | amd64, lengan64 |
java17 | 17 | amd64,arm64,armv7 |
java11 | 11 | amd64,arm64,armv7 |
java8 | 8 | amd64,arm64,armv7 |