Dockerfile (2682B)
1 ############################################################ 2 # Counter-Strike dedicated server 3 ############################################################ 4 FROM debian:bookworm-slim 5 6 LABEL maintainer="admin@based.pt" 7 8 ARG PUID=1000 9 ENV USER=steam \ 10 HOMEDIR=/home/steam \ 11 STEAMCMDDIR=/home/steam/steamcmd \ 12 PORT=27015 \ 13 DATADIR=/data \ 14 MAP=de_dust2 15 16 RUN set -x \ 17 && apt-get update \ 18 && apt-get install -y --no-install-recommends --no-install-suggests \ 19 lib32stdc++6=12.2.0-14+deb12u1 \ 20 lib32gcc-s1=12.2.0-14+deb12u1 \ 21 ca-certificates=20230311+deb12u1 \ 22 nano=7.2-1+deb12u1 \ 23 curl=7.88.1-10+deb12u14 \ 24 locales=2.36-9+deb12u13 \ 25 && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \ 26 && dpkg-reconfigure --frontend=noninteractive locales \ 27 && useradd -u "${PUID}" -m "${USER}" \ 28 && mkdir -p "${STEAMCMDDIR}" "${DATADIR}" \ 29 && chown -R "${USER}:${USER}" "${HOMEDIR}" "${DATADIR}" \ 30 && su "${USER}" -c "\ 31 mkdir -p \"${STEAMCMDDIR}\" \ 32 && curl -fsSL 'https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz' | tar xvzf - -C \"${STEAMCMDDIR}\" \ 33 && \"${STEAMCMDDIR}/steamcmd.sh\" +quit \ 34 && ln -s \"${STEAMCMDDIR}/linux32/steamclient.so\" \"${STEAMCMDDIR}/steamservice.so\" \ 35 && mkdir -p \"${HOMEDIR}/.steam/sdk32\" \ 36 && ln -s \"${STEAMCMDDIR}/linux32/steamclient.so\" \"${HOMEDIR}/.steam/sdk32/steamclient.so\" \ 37 && mkdir -p \"${HOMEDIR}/.steam/sdk64\" \ 38 && ln -s \"${STEAMCMDDIR}/linux64/steamclient.so\" \"${HOMEDIR}/.steam/sdk64/steamclient.so\" \ 39 && ln -s \"${STEAMCMDDIR}/steamcmd.sh\" \"${STEAMCMDDIR}/steam.sh\"" \ 40 && ln -s "${STEAMCMDDIR}/linux64/steamclient.so" "/usr/lib/x86_64-linux-gnu/steamclient.so" \ 41 && rm -rf /var/lib/apt/lists/* 42 43 USER ${USER} 44 WORKDIR ${HOMEDIR} 45 46 EXPOSE ${PORT}/udp 47 VOLUME ["/data"] 48 49 ENTRYPOINT ["/bin/bash", "-c", "\ 50 if [ ! -f ${DATADIR}/hlds_run ]; then \ 51 echo 'Installing Counter-Strike server...'; \ 52 ${STEAMCMDDIR}/steamcmd.sh +force_install_dir ${DATADIR} +login anonymous \ 53 +app_set_config 90 mod cstrike \ 54 +app_update 90 -beta steam_legacy validate \ 55 +quit; \ 56 else \ 57 if [ \"$UPDATE\" = \"1\" ]; then \ 58 echo 'Updating Counter-Strike server...'; \ 59 ${STEAMCMDDIR}/steamcmd.sh +force_install_dir ${DATADIR} +login anonymous \ 60 +app_update 90 -beta steam_legacy validate \ 61 +quit; \ 62 else \ 63 echo 'Skipping update, starting server...'; \ 64 fi; \ 65 fi; \ 66 cd ${DATADIR} && \ 67 exec bash hlds_run -game cstrike -console +ip 0.0.0.0 -port ${PORT} +map ${MAP}"]