FROM ubuntu:24.04 ARG DEBIAN_FRONTEND=noninteractive RUN dpkg --add-architecture i386 \ && apt-get update \ && apt-get install -y --no-install-recommends \ ca-certificates curl gosu lib32gcc-s1 python3 python3-pip python3-venv \ && rm -rf /var/lib/apt/lists/* \ && useradd --create-home --shell /bin/bash progression \ && mkdir -p /opt/steamcmd/steamapps /srv/progression/.data \ && curl -fsSL https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz \ | tar -xz -C /opt/steamcmd \ && chown -R progression:progression /opt/steamcmd /srv/progression WORKDIR /srv/progression COPY --chown=progression:progression requirements-web.txt ./ RUN python3 -m venv /srv/venv \ && /srv/venv/bin/pip install --no-cache-dir -r requirements-web.txt COPY --chown=progression:progression progression_backend ./progression_backend COPY --chown=progression:progression art ./art COPY --chmod=755 docker-entrypoint.sh /usr/local/bin/progression-entrypoint ENV HOME=/home/progression \ USER=progression \ XDG_DATA_HOME=/home/progression/.local/share \ PROGRESSION_HOST=0.0.0.0 \ PROGRESSION_PORT=8000 \ PROGRESSION_DB_PATH=.data/progression.db \ STEAMCMD_PATH=/opt/steamcmd/steamcmd.sh \ STEAMCMD_WORKSHOP_DIR=/opt/steamcmd/steamapps/workshop/content/294100 \ REFRESH_INTERVAL_SECONDS=3600 \ REFRESH_ON_STARTUP=true \ INITIAL_DOWNLOAD_TIMEOUT_SECONDS=43200 VOLUME ["/srv/progression/.data", "/opt/steamcmd/steamapps"] EXPOSE 8000 HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \ CMD curl -fsS http://127.0.0.1:8000/api/health || exit 1 ENTRYPOINT ["/usr/local/bin/progression-entrypoint"] CMD ["/srv/venv/bin/python", "-m", "progression_backend"]