11# ##########################################################
22# Dockerfile that builds a Core Keeper Gameserver
33# ##########################################################
4- FROM cm2network/steamcmd:root
4+ FROM cm2network/steamcmd:root AS base-amd64
5+ FROM --platform=arm64 sonroyaalmerol/steamcmd-arm64:root-2024-11-24 AS base-arm64
6+
7+ ARG TARGETARCH
8+ FROM base-${TARGETARCH}
59
610LABEL maintainer="leandro.martin@protonmail.com"
711
@@ -14,7 +18,10 @@ ENV SCRIPTSDIR="${HOMEDIR}/scripts"
1418ENV MODSDIR="${STEAMAPPDATADIR}/StreamingAssets/Mods"
1519ENV DLURL=https://raw.githubusercontent.com/escapingnetwork/core-keeper-dedicated
1620
17- RUN dpkg --add-architecture i386
21+ ARG TARGETARCH
22+ RUN case "${TARGETARCH}" in \
23+ "amd64" ) dpkg --add-architecture i386 ;; \
24+ esac
1825
1926# Install Core Keeper server dependencies and clean up
2027RUN set -x \
@@ -27,13 +34,56 @@ RUN set -x \
2734 gosu \
2835 jo \
2936 gettext-base \
37+ unzip \
38+ wget \
3039 && rm -rf /var/lib/apt/lists/*
3140
41+ RUN case "${TARGETARCH}" in \
42+ "arm64" ) apt-get update \
43+ && apt-get install -y --no-install-recommends --no-install-suggests \
44+ libmonosgen-2.0-1 \
45+ libdbus-1-3 \
46+ libxcursor1 \
47+ libxinerama1 \
48+ libxss1 \
49+ libatomic1 \
50+ libpulse0 \
51+ && rm -rf /var/lib/apt/lists/* ;; \
52+ esac
53+
54+ # Download Depot downloader
55+ ARG DEPOT_DOWNLOADER_VERSION="2.7.4"
56+ RUN case "${TARGETARCH}" in \
57+ "amd64" ) DEPOT_DOWNLOADER_FILENAME=DepotDownloader-linux-x64.zip ;; \
58+ "arm64" ) DEPOT_DOWNLOADER_FILENAME=DepotDownloader-linux-arm64.zip ;; \
59+ esac \
60+ && wget --progress=dot:giga "https://github.com/SteamRE/DepotDownloader/releases/download/DepotDownloader_${DEPOT_DOWNLOADER_VERSION}/${DEPOT_DOWNLOADER_FILENAME}" -O DepotDownloader.zip \
61+ && unzip DepotDownloader.zip \
62+ && rm -rf DepotDownloader.xml \
63+ && chmod +x DepotDownloader \
64+ && mv DepotDownloader /usr/local/bin/DepotDownloader
65+
3266# Setup X11 Sockets folder
3367RUN mkdir /tmp/.X11-unix \
3468 && chmod 1777 /tmp/.X11-unix \
3569 && chown root /tmp/.X11-unix
3670
71+ # Box64/86 configuration
72+ ENV BOX64_DYNAREC_BIGBLOCK=0 \
73+ BOX64_DYNAREC_SAFEFLAGS=2 \
74+ BOX64_DYNAREC_STRONGMEM=3 \
75+ BOX64_DYNAREC_FASTROUND=0 \
76+ BOX64_DYNAREC_FASTNAN=0 \
77+ BOX64_DYNAREC_X87DOUBLE=1 \
78+ BOX64_DYNAREC_BLEEDING_EDGE=0 \
79+ BOX86_DYNAREC_BIGBLOCK=0 \
80+ BOX86_DYNAREC_SAFEFLAGS=2 \
81+ BOX86_DYNAREC_STRONGMEM=3 \
82+ BOX86_DYNAREC_FASTROUND=0 \
83+ BOX86_DYNAREC_FASTNAN=0 \
84+ BOX86_DYNAREC_X87DOUBLE=1 \
85+ BOX86_DYNAREC_BLEEDING_EDGE=0
86+
3787# Setup folders
3888COPY ./scripts ${SCRIPTSDIR}
3989RUN set -x \
@@ -45,6 +95,7 @@ RUN set -x \
4595# Declare envs and their default values
4696ENV PUID=1000 \
4797 PGID=1000 \
98+ USE_DEPOT_DOWNLOADER=false \
4899 WORLD_INDEX=0 \
49100 WORLD_NAME="Core Keeper Server" \
50101 WORLD_SEED=0 \
0 commit comments