| # debian.sh --arch 'amd64' out/ 'bookworm' '@1754870400' |
| LABEL maintainer=walentinlamonos@gmail.com |
| ARG PUID=1000 |
| ENV USER=steam |
| ENV HOMEDIR=/home/steam |
| ENV STEAMCMDDIR=/home/steam/steamcmd |
| RUN |1 PUID=1000 /bin/sh -c set -x && apt-get update && apt-get install -y --no-install-recommends --no-install-suggests lib32stdc++6=12.2.0-14+deb12u1 lib32gcc-s1=12.2.0-14+deb12u1 ca-certificates=20230311 nano=7.2-1+deb12u1 curl=7.88.1-10+deb12u12 locales=2.36-9+deb12u10 && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && dpkg-reconfigure --frontend=noninteractive locales && useradd -u "${PUID}" -m "${USER}" && su "${USER}" -c "mkdir -p \"${STEAMCMDDIR}\" && curl -fsSL 'https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz' | tar xvzf - -C \"${STEAMCMDDIR}\" && \"./${STEAMCMDDIR}/steamcmd.sh\" +quit && ln -s \"${STEAMCMDDIR}/linux32/steamclient.so\" \"${STEAMCMDDIR}/steamservice.so\" && mkdir -p \"${HOMEDIR}/.steam/sdk32\" && ln -s \"${STEAMCMDDIR}/linux32/steamclient.so\" \"${HOMEDIR}/.steam/sdk32/steamclient.so\" && ln -s \"${STEAMCMDDIR}/linux32/steamcmd\" \"${STEAMCMDDIR}/linux32/steam\" && mkdir -p \"${HOMEDIR}/.steam/sdk64\" && ln -s \"${STEAMCMDDIR}/linux64/steamclient.so\" \"${HOMEDIR}/.steam/sdk64/steamclient.so\" && ln -s \"${STEAMCMDDIR}/linux64/steamcmd\" \"${STEAMCMDDIR}/linux64/steam\" && ln -s \"${STEAMCMDDIR}/steamcmd.sh\" \"${STEAMCMDDIR}/steam.sh\"" && ln -s "${STEAMCMDDIR}/linux64/steamclient.so" "/usr/lib/x86_64-linux-gnu/steamclient.so" && rm -rf /var/lib/apt/lists/* # buildkit |
| WORKDIR /home/steam/steamcmd |
| LABEL org.opencontainers.image.authors=Richard Kuhnt <r15ch13+git@gmail.com> org.opencontainers.image.title=ARK Cluster Image org.opencontainers.image.description=ARK Cluster Image org.opencontainers.image.url=https://github.com/r15ch13/arkcluster org.opencontainers.image.source=https://github.com/r15ch13/arkcluster |
| CMD ["/usr/bin/run.sh"] |
| RUN /bin/sh -c <<EOT bash # Install dependencies and clean up
apt-get update
apt-get upgrade -y -o Dpkg::Options::="--force-confold"
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends bzip2 curl lib32gcc-s1 libc6-i386 lsof perl-modules tzdata libcompress-raw-zlib-perl
apt-get clean
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
EOT # buildkit |
| ARG ARKMANAGER_VERSION=1.6.67 |
| RUN |1 ARKMANAGER_VERSION=1.6.67 /bin/sh -c <<EOT bash # Install ark-server-tools
curl -sqL "https://github.com/arkmanager/ark-server-tools/archive/refs/tags/v${ARKMANAGER_VERSION}.tar.gz" | tar zxvf -
pushd "./ark-server-tools-${ARKMANAGER_VERSION}/tools"
./install.sh steam --bindir=/usr/bin
popd
rm -r "ark-server-tools-${ARKMANAGER_VERSION}"
EOT # buildkit |
| RUN |1 ARKMANAGER_VERSION=1.6.67 /bin/sh -c <<EOT bash # Create required directories
mkdir -p /ark/{log,backup,staging,default,steam,.steam}
mkdir -p /cluster
EOT # buildkit |
| RUN |1 ARKMANAGER_VERSION=1.6.67 /bin/sh -c <<EOT bash
rm -rf /home/steam/Steam
ln -s /ark/steam /home/steam/Steam
EOT # buildkit |
| COPY run.sh /usr/bin/run.sh # buildkit |
| RUN |1 ARKMANAGER_VERSION=1.6.67 /bin/sh -c chmod +x /usr/bin/run.sh # buildkit |
| COPY arkmanager.cfg /etc/arkmanager/arkmanager.cfg # buildkit |
| COPY arkmanager-user.cfg /home/steam/arkmanager-user.cfg # buildkit |
| COPY crontab /home/steam/crontab # buildkit |
| COPY healthcheck.sh /bin/healthcheck # buildkit |
| RUN |1 ARKMANAGER_VERSION=1.6.67 /bin/sh -c chmod +x /bin/healthcheck # buildkit |
| HEALTHCHECK &{["CMD-SHELL" "[ /bin/healthcheck ]"] "10s" "10s" "10s" "0s" '\x03'} |
| RUN |1 ARKMANAGER_VERSION=1.6.67 /bin/sh -c chown steam:steam -R /ark /cluster /home/steam # buildkit |
| ENV CRON_AUTO_UPDATE=0 */3 * * * CRON_AUTO_BACKUP=0 */1 * * * UPDATEONSTART=1 BACKUPONSTART=1 BACKUPONSTOP=1 WARNONSTOP=1 TZ=UTC MAX_BACKUP_SIZE=500 SERVERMAP=TheIsland SESSION_NAME=ARK Docker MAX_PLAYERS=15 RCON_ENABLE=True QUERY_PORT=15000 GAME_PORT=15002 RCON_PORT=15003 SERVER_PVE=False SERVER_PASSWORD= ADMIN_PASSWORD= SPECTATOR_PASSWORD= MODS= CLUSTER_ID=keepmesecret GAME_USERSETTINGS_INI_PATH= GAME_INI_PATH= KILL_PROCESS_TIMEOUT=300 KILL_ALL_PROCESSES_TIMEOUT=300 |
| VOLUME [/ark /cluster] |
| WORKDIR /ark |