11FROM debian:bookworm-slim AS build
22
3- ARG HLDS_BUILD=8308
4- ARG AMXMODX_VERSION=1.9.0-git5294
5- ARG JK_BOTTI_VERSION=1.43
6- ARG METAMOD_R_REF=4db16ff6
7- ARG HLDS_URL="https://github.com/DevilBoy-eXe/hlds/releases/download/$HLDS_BUILD/hlds_build_$HLDS_BUILD.zip"
8- ARG AMXMODX_URL="https://www.amxmodx.org/amxxdrop/1.9/amxmodx-$AMXMODX_VERSION-base-linux.tar.gz"
9- ARG JK_BOTTI_URL="http://koti.kapsi.fi/jukivili/web/jk_botti/jk_botti-$JK_BOTTI_VERSION-release.tar.xz"
3+ ARG HLDS_BUILD="8308"
4+ ARG AMXMODX_VERSION="1.9.0-git5294"
5+ ARG JK_BOTTI_VERSION="1.43"
6+ ARG METAMODR_GIT_REF="4db16ff6"
7+
8+ ARG AMXMODX_FILENAME="amxmodx-$AMXMODX_VERSION-base-linux.tar.gz"
9+ ARG AMXMODX_SHA256="b9467a63aa92fc22330c06817d9059c4462abc3ecb50d39538dda21c8f27bd58"
10+ ARG AMXMODX_URL="https://www.amxmodx.org/amxxdrop/1.9/$AMXMODX_FILENAME"
11+
12+ ARG HLDS_FILENAME="hlds_build_$HLDS_BUILD.zip"
13+ ARG HLDS_SHA256="03a1035e6a479ccf0a64e842fe0f0315f1f2f9e0160619127a61ae68cdb37df9"
14+ ARG HLDS_URL="https://github.com/DevilBoy-eXe/hlds/releases/download/$HLDS_BUILD/$HLDS_FILENAME"
15+
16+ ARG JK_BOTTI_FILENAME="jk_botti-$JK_BOTTI_VERSION-release.tar.xz"
17+ ARG JK_BOTTI_SHA256="549fc87ea84d27c448a537662b0c622f8806d5657dd6bc8b6d92241b1d338767"
18+ ARG JK_BOTTI_URL="http://koti.kapsi.fi/jukivili/web/jk_botti/$JK_BOTTI_FILENAME"
1019
1120RUN groupadd -r xash && useradd -r -g xash -m -d /opt/xash xash
1221RUN usermod -a -G games xash
@@ -34,11 +43,13 @@ USER xash
3443WORKDIR /opt/xash
3544SHELL ["/bin/bash" , "-o" , "pipefail" , "-c" ]
3645
46+ # Download & validate HLDS build
3747RUN mkdir -p /opt/xash/xashds && mkdir -p /opt/xash/xashds/valve \
3848 && curl -sLJO "$HLDS_URL" \
39- && unzip "hlds_build_$HLDS_BUILD.zip" -d "/opt/xash/hlds_build_$HLDS_BUILD" \
49+ && echo "$HLDS_SHA256 $HLDS_FILENAME" | sha256sum -c - \
50+ && unzip "$HLDS_FILENAME" -d "/opt/xash/hlds_build_$HLDS_BUILD" \
4051 && cp -R "hlds_build_$HLDS_BUILD/hlds" /valve/* xashds/valve \
41- && rm -rf "hlds_build_$HLDS_BUILD" "hlds_build_$HLDS_BUILD.zip "
52+ && rm -rf "hlds_build_$HLDS_BUILD" "$HLDS_FILENAME "
4253
4354# Compiling XashDS from sources
4455RUN git clone --recursive https://github.com/FWGS/xash3d-fwgs \
@@ -56,7 +67,7 @@ RUN mkdir -p /opt/xash/xashds/valve/addons/metamod/dlls \
5667# Compiling & installing Metamod-R
5768RUN git clone --recursive https://github.com/rehlds/Metamod-R.git \
5869 && cd Metamod-R \
59- && git checkout $METAMOD_R_REF \
70+ && git checkout $METAMODR_GIT_REF \
6071 && cp metamod/extra/config.ini /opt/xash/xashds/valve/addons/metamod/config.ini \
6172 && mkdir ./build \
6273 && cd build \
@@ -70,20 +81,23 @@ RUN git clone --recursive https://github.com/rehlds/Metamod-R.git \
7081RUN touch /opt/xash/xashds/valve/listip.cfg
7182RUN touch /opt/xash/xashds/valve/banned.cfg
7283
73- # Install AMX mod X
74- RUN curl -sqL "$AMXMODX_URL" | tar -C /opt/xash/xashds/valve/ -zxvf - \
75- && echo 'linux addons/amxmodx/dlls/amxmodx_mm_i386.so' >> /opt/xash/xashds/valve/addons/metamod/plugins.ini
84+ # Install AMX Mod X
85+ RUN curl -sLO "$AMXMODX_URL" \
86+ && echo "$AMXMODX_SHA256 $AMXMODX_FILENAME" | sha256sum -c - \
87+ && tar -C /opt/xash/xashds/valve/ -zxvf "$AMXMODX_FILENAME" \
88+ && echo 'linux addons/amxmodx/dlls/amxmodx_mm_i386.so' >> /opt/xash/xashds/valve/addons/metamod/plugins.ini \
89+ && rm -f "$AMXMODX_FILENAME"
7690RUN cat /opt/xash/xashds/valve/mapcycle.txt >> /opt/xash/xashds/valve/addons/amxmodx/configs/maps.ini
7791
7892# Install jk_botti
79- RUN curl -sqL "$JK_BOTTI_URL" | tar -C /opt/xash/xashds/valve/ -xJ \
93+ RUN curl -sLO "$JK_BOTTI_URL" \
94+ && echo "$JK_BOTTI_SHA256 $JK_BOTTI_FILENAME" | sha256sum -c - \
95+ && tar -C /opt/xash/xashds/valve/ -xJf "$JK_BOTTI_FILENAME" \
96+ && rm -f "$JK_BOTTI_FILENAME" \
8097 && echo 'linux addons/jk_botti/dlls/jk_botti_mm_i386.so' >> /opt/xash/xashds/valve/addons/metamod/plugins.ini
8198
82- # Remove cstrike game directory, because it's not needed
83- WORKDIR /opt/xash/xashds
84- RUN rm -rf ./cstrike
85-
8699# Copy default config
100+ WORKDIR /opt/xash/xashds
87101COPY valve valve
88102
89103# Second stage, used for running compiled XashDS
0 commit comments