SquadDocker/Dockerfile

64 lines
1.7 KiB
Docker

# syntax=docker/dockerfile:1.4
FROM asgard.orion-technologies.io/steamcmd:1.0 AS build
LABEL maintainer="price@orion-technologies.io"
ARG squad_js_version="3.6.1"
ENV STEAM_APP_ID=403240
ENV STEAM_BETA_APP_ID=774961
ENV WORKSHOP_ID=393380
ENV STEAM_BETA_PASSWORD=""
ENV STEAM_BETA_BRANCH=""
ENV USE_SQUAD_BETA=0
ENV MODS=""
ENV UPDATE_SQUAD=0
ENV RCON_PASSWORD=""
ENV SQUAD_SERVER_DIR="${USER_HOME}/Squad-Server"
# Space delimited list of mod numbers that are built into the image, e.g. 101 202 303
ENV GAMEPORT=7787 \
QUERYPORT=27165 \
RCONPORT=21114 \
FIXEDMAXPLAYERS=98 \
FIXEDMAXTICKRATE=40 \
RANDOM=NONE
COPY --chown=${USER}:${USER} --chmod=0755 ./scripts/entry.bash "${USER_HOME}/entry.bash"
COPY --chown=root:root --chmod=0755 ./scripts/prepare-node14-yarn.bash /root/prepare-node14-yarn.bash
# hadolint ignore=DL3003
RUN <<__EOR__
apt-get update
# Requirements for node
apt-get install -y --no-install-suggests --no-install-recommends \
lsb-release=11.1.0 \
apt-transport-https=2.2.4 \
gnupg=2.2.27-2+deb11u2 \
sqlite=3.34.1-3
/bin/bash /root/prepare-node14-yarn.bash
apt-get remove --purge --auto-remove -y
rm -rf /var/lib/apt/lists/* /root/prepare-node14-yarn.bash
(
mkdir -p "${SQUAD_SERVER_DIR}"
cd "${SQUAD_SERVER_DIR}" || exit 1
curl -L0 https://github.com/Team-Silver-Sphere/SquadJS/refs/tags/v${squad_js_version}.tar.gz --output squad-js-${squad_js_version}.tar.gz
tar -xf squad-js-${squad_js_version}.tar.gz
mv SquadJS-${squad_js_version} SquadJS
)
__EOR__
FROM build AS prod
SHELL [ "/bin/bash" ]
WORKDIR "${USER_HOME}"
EXPOSE 7787/udp \
27165/tcp \
27165/udp \
21114/tcp \
21114/udp
ENTRYPOINT [ "/bin/bash", "entry.bash" ]