43 lines
1.7 KiB
Docker
43 lines
1.7 KiB
Docker
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"]
|