| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- # BASE IMAGE
- FROM docker.io/library/debian:bookworm-slim
- LABEL maintainer="Penta"
- LABEL description="Up to date Garry's Mod server container image"
- ENV DEBIAN_FRONTEND=noninteractive
- # INSTALL NECESSARY PACKAGES
- RUN dpkg --add-architecture i386 && \
- apt-get update && \
- apt-get install -y --no-install-recommends \
- bash wget curl ca-certificates tar lsof procps psmisc iproute2 file gdb net-tools \
- libc6 libc6:i386 libstdc++6 libstdc++6:i386 libgcc-s1 libgcc-s1:i386 \
- zlib1g zlib1g:i386 libcurl4 libcurl4:i386 \
- libncurses5:i386 libtinfo5 \
- libsdl1.2debian libfontconfig1 \
- libglib2.0-0 libnss3 libasound2 \
- libx11-6 libxext6 libxi6 libxrender1 \
- libfreetype6 libgtk2.0-0 libgdk-pixbuf-2.0-0 libpangocairo-1.0-0 \
- libtcmalloc-minimal4 && \
- rm -rf /var/lib/apt/lists/*
- # SET STEAM USER
- RUN useradd -d /app -m steam
- RUN mkdir /app/server && mkdir /app/steamcmd
- USER steam
- WORKDIR /app
- # INSTALL STEAMCMD
- RUN wget -P /tmp/ https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz \
- && tar -xvzf /tmp/steamcmd_linux.tar.gz -C /app/steamcmd/ \
- && rm -rf /tmp/steamcmd_linux.tar.gz
- # SETUP STEAMCMD TO DOWNLOAD GMOD SERVER
- RUN /app/steamcmd/steamcmd.sh +@sSteamCmdForcePlatformType linux +force_install_dir /app/server +login anonymous +app_update 4020 validate +quit
- # SETUP BINARIES FOR x32 and x64 bits
- RUN mkdir -p /app/.steam/sdk32 /app/.steam/sdk64 && cp -v /app/steamcmd/linux32/steamclient.so /app/.steam/sdk32/steamclient.so && cp -v /app/steamcmd/linux64/steamclient.so /app/.steam/sdk64/steamclient.so
- # CREATE DATABASE FILE
- RUN touch /app/server/garrysmod/sv.db
- # CREATE CACHE FOLDERS
- RUN mkdir -p /app/server/steam_cache/content && mkdir -p /app/server/garrysmod/cache/srcds
- ENV LD_LIBRARY_PATH=/app/server/bin:/app/server:/app/.steam/sdk32:/app/.steam/sdk64:/app/steamcmd/linux32:/app/steamcmd/linux64
- ENV HOME=/app
- ENV USER=steam
- # PORT FORWARDING
- EXPOSE 27015
- EXPOSE 27015/udp
- EXPOSE 27005/udp
- # SET ENVIRONMENT VARIABLES
- ENV MAXPLAYERS="16"
- ENV GAMEMODE="sandbox"
- ENV MAP="gm_construct"
- ENV PORT="27015"
- ENV ARGS=""
- # START THE SERVER
- CMD ["/bin/bash","-lc","touch /app/server/garrysmod/console.log && tail -F /app/server/garrysmod/console.log & exec /app/server/srcds_linux -game garrysmod -console -strictportbind -port ${PORT} -maxplayers ${MAXPLAYERS} +gamemode ${GAMEMODE} +map ${MAP} ${ARGS}"]
|