feat(mc): mount distribution kubejs + CustomSkinLoader into server

The minecraft container only received forgemods jars via ./server-mods.
The distribution's files/kubejs (server_scripts, data, startup_scripts)
and CustomSkinLoader never reached the server, so server-side kubejs
recipes/scripts were silently absent.

Bind-mount both from DISTRIBUTION_WEB_ROOT (read-only, to avoid the
server polluting the client distribution with kubejs-generated files).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-24 21:53:47 +02:00
parent 614e47598b
commit d303d23d18

View File

@@ -95,6 +95,13 @@ services:
- mc_data:/data - mc_data:/data
- ./runtime:/extras:ro # authlib-injector.jar lives here - ./runtime:/extras:ro # authlib-injector.jar lives here
- ./server-mods:/mods:ro # itzg auto-syncs /mods → /data/mods - ./server-mods:/mods:ro # itzg auto-syncs /mods → /data/mods
# Distribution client-override files the server also needs. kubejs holds
# server_scripts/data/startup_scripts (server-side); CustomSkinLoader by
# request. Mounted from the live distribution (DISTRIBUTION_WEB_ROOT), same
# source as the caddy distribution. mode ro so the server can't pollute the
# client distribution with kubejs-generated files.
- ${DISTRIBUTION_WEB_ROOT:?DISTRIBUTION_WEB_ROOT unset in .env}/servers/ulicraft-1.21.1/files/kubejs:/data/kubejs:ro
- ${DISTRIBUTION_WEB_ROOT}/servers/ulicraft-1.21.1/files/CustomSkinLoader:/data/CustomSkinLoader:ro
depends_on: depends_on:
- drasl # authlib (auth.) must resolve at boot - drasl # authlib (auth.) must resolve at boot
# Containers don't inherit the host's /etc/hosts; the LAN resolver returns a # Containers don't inherit the host's /etc/hosts; the LAN resolver returns a