FROM debian:bookworm-slim ARG DEBIAN_FRONTEND=noninteractive \ TINI_VERSION=0.19.0 \ WINE_PGP_URL=https://dl.winehq.org/wine-builds/winehq.key \ WINE_SRC_URL=https://dl.winehq.org/wine-builds/debian/dists/bookworm/winehq-bookworm.sources \ WINE_FLAVOUR=stable \ WINE_VERSION=8.0.2~bookworm-1 \ USER_ID=1000 \ GROUP_ID=1000 ADD https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini /tini RUN chmod +x /tini \ && dpkg --add-architecture i386 \ && apt-get update -y \ && apt-get install -y --no-install-recommends \ gnupg \ ca-certificates \ curl \ xauth \ xvfb \ iproute2 \ && mkdir -pm755 /etc/apt/keyrings \ && curl -fsSL -o /etc/apt/keyrings/winehq-archive.key ${WINE_PGP_URL} \ && curl -fsSL -o /etc/apt/sources.list.d/winehq.sources ${WINE_SRC_URL} \ && apt-get update -y \ && apt-get install -y --no-install-recommends \ winehq-${WINE_FLAVOUR}=${WINE_VERSION} \ wine-${WINE_FLAVOUR}=${WINE_VERSION} \ wine-${WINE_FLAVOUR}-amd64=${WINE_VERSION} \ wine-${WINE_FLAVOUR}-i386=${WINE_VERSION} \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # The volume folders need specified ahead of time, otherwise they will be owned by root when created via VOLUME. RUN groupadd --gid $GROUP_ID blockland && useradd --uid $USER_ID --gid $GROUP_ID --create-home --shell /bin/bash blockland \ && mkdir /data /data/Add-Ons /data/config /data/saves /data/modules /data/base \ && chown blockland:blockland -R /data USER blockland COPY --chmod=0755 --chown=blockland:blockland bin/ /usr/local/bin/ ENV BL_DEDI_LAN=0 \ BL_DTOKEN="" \ BL_SERVER_NAME="Blockland_Server" \ BL_MAX_PLAYERS=32 \ BL_GAMEMODE="Custom" \ BL_PORT=28000 \ BL_EXTRA_ARGS="" \ BL_INST_NUM_PROC=10 \ BL_INST_FORCE=0 \ BL_INST_OVERWRITE=0 \ BL_PATCH_ENABLE=1 \ BL_PATCH_EXE_URL=https://gitlab.com/-/project/19166101/uploads/7e9bc075056c3301fd1247975ecaa218/Blockland.exe \ BL_PATCH_LOADER_URL=https://gitlab.com/-/project/19166101/uploads/2970aa2d8c23259f8becb0f49630efcc/RedBlocklandLoader.dll \ BL_PATCH_WINEFIX_URL=https://gitlab.com/-/project/46964875/uploads/91958483cf78ffc270a09824336bd91a/WineFix.dll \ WINEARCH=win32 \ WINEDEBUG=-all WORKDIR /data VOLUME /data/Add-Ons \ /data/config \ /data/saves \ /data/modules \ /data/base # Dedi LANs force the port to be 28050, # so I'm exposing both for documentation EXPOSE 28000/udp EXPOSE 28050/udp # -g is necessary so detaching works properly ENTRYPOINT ["/tini", "-g", "--", "/bin/bash", "-c", "run-bl"]