| # debian.sh --arch 'amd64' out/ 'trixie' '@1771804800' |
| 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=14.2.0-19 lib32gcc-s1=14.2.0-19 ca-certificates=20250419 nano=8.4-1 curl=8.14.1-2+deb13u2 locales=2.41-12+deb13u1 && 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 maintainer=thijs@loef.dev name=thijsvanloef/palworld-server-docker github=https://github.com/thijsvanloef/palworld-server-docker dockerhub=https://hub.docker.com/r/thijsvanloef/palworld-server-docker org.opencontainers.image.authors=Thijs van Loef org.opencontainers.image.source=https://github.com/thijsvanloef/palworld-server-docker |
| ARG SUPERCRONIC_SHA1SUM_ARM64=5c6266786c2813d6f8a99965d84452faae42b483 |
| ARG SUPERCRONIC_SHA1SUM_AMD64=f97b92132b61a8f827c3faf67106dc0e4467ccf2 |
| ARG SUPERCRONIC_VERSION=0.2.43 |
| ARG DEPOT_DOWNLOADER_VERSION=3.4.0 |
| RUN |4 SUPERCRONIC_SHA1SUM_ARM64=5c6266786c2813d6f8a99965d84452faae42b483 SUPERCRONIC_SHA1SUM_AMD64=f97b92132b61a8f827c3faf67106dc0e4467ccf2 SUPERCRONIC_VERSION=0.2.43 DEPOT_DOWNLOADER_VERSION=3.4.0 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends procps wget gettext-base xdg-user-dirs jo jq netcat-traditional unzip libcap2-bin libpcap0.8 ca-certificates python3 python3-venv python3-pip && (apt-get install -y --no-install-recommends libicu76 || apt-get install -y --no-install-recommends libicu72) && apt-get clean && rm -rf /var/lib/apt/lists/* # buildkit |
| RUN |4 SUPERCRONIC_SHA1SUM_ARM64=5c6266786c2813d6f8a99965d84452faae42b483 SUPERCRONIC_SHA1SUM_AMD64=f97b92132b61a8f827c3faf67106dc0e4467ccf2 SUPERCRONIC_VERSION=0.2.43 DEPOT_DOWNLOADER_VERSION=3.4.0 /bin/sh -c python3 -m venv /opt/mitmproxy-venv && /opt/mitmproxy-venv/bin/pip install --no-cache-dir mitmproxy && ln -s /opt/mitmproxy-venv/bin/mitmproxy /usr/local/bin/ && ln -s /opt/mitmproxy-venv/bin/mitmdump /usr/local/bin/ && ln -s /opt/mitmproxy-venv/bin/mitmweb /usr/local/bin/ # buildkit |
| SHELL [/bin/bash -o pipefail -c] |
| COPY /build/gorcon /usr/bin/rcon-cli # buildkit |
| ARG TARGETARCH=amd64 |
| RUN |5 SUPERCRONIC_SHA1SUM_ARM64=5c6266786c2813d6f8a99965d84452faae42b483 SUPERCRONIC_SHA1SUM_AMD64=f97b92132b61a8f827c3faf67106dc0e4467ccf2 SUPERCRONIC_VERSION=0.2.43 DEPOT_DOWNLOADER_VERSION=3.4.0 TARGETARCH=amd64 /bin/bash -o pipefail -c case "${TARGETARCH}" in "amd64") SUPERCRONIC_SHA1SUM=${SUPERCRONIC_SHA1SUM_AMD64} ;; "arm64") SUPERCRONIC_SHA1SUM=${SUPERCRONIC_SHA1SUM_ARM64} ;; esac && wget --progress=dot:giga "https://github.com/aptible/supercronic/releases/download/v${SUPERCRONIC_VERSION}/supercronic-linux-${TARGETARCH}" -O supercronic && echo "${SUPERCRONIC_SHA1SUM}" supercronic | sha1sum -c - && chmod +x supercronic && mv supercronic /usr/local/bin/supercronic # buildkit |
| RUN |5 SUPERCRONIC_SHA1SUM_ARM64=5c6266786c2813d6f8a99965d84452faae42b483 SUPERCRONIC_SHA1SUM_AMD64=f97b92132b61a8f827c3faf67106dc0e4467ccf2 SUPERCRONIC_VERSION=0.2.43 DEPOT_DOWNLOADER_VERSION=3.4.0 TARGETARCH=amd64 /bin/bash -o pipefail -c case "${TARGETARCH}" in "amd64") DEPOT_DOWNLOADER_FILENAME=DepotDownloader-linux-x64.zip ;; "arm64") DEPOT_DOWNLOADER_FILENAME=DepotDownloader-linux-arm64.zip ;; esac && wget --progress=dot:giga "https://github.com/SteamRE/DepotDownloader/releases/download/DepotDownloader_${DEPOT_DOWNLOADER_VERSION}/${DEPOT_DOWNLOADER_FILENAME}" -O DepotDownloader.zip && unzip DepotDownloader.zip && rm -rf DepotDownloader.xml && chmod +x DepotDownloader && mv DepotDownloader /usr/local/bin/DepotDownloader # buildkit |
| RUN |5 SUPERCRONIC_SHA1SUM_ARM64=5c6266786c2813d6f8a99965d84452faae42b483 SUPERCRONIC_SHA1SUM_AMD64=f97b92132b61a8f827c3faf67106dc0e4467ccf2 SUPERCRONIC_VERSION=0.2.43 DEPOT_DOWNLOADER_VERSION=3.4.0 TARGETARCH=amd64 /bin/bash -o pipefail -c wget --progress=dot:giga https://github.com/Metalcape/knock/releases/download/0.8.1/knock-0.8.1-${TARGETARCH}.tar.gz -O /tmp/knock.tar.gz && tar -xf /tmp/knock.tar.gz -C /usr/local/ && rm /tmp/knock.tar.gz && ln -s /usr/local/sbin/knockd /usr/sbin/knockd && setcap cap_net_raw=ep /usr/local/sbin/knockd && find /usr/lib -name 'libpcap.so.0.8' -execdir cp '{}' libpcap.so.1 \; # buildkit |
| ENV HOME=/home/steam PORT= PUID=1000 PGID=1000 PLAYERS= MULTITHREADING=false COMMUNITY=false PUBLIC_IP= PUBLIC_PORT= SERVER_PASSWORD= SERVER_NAME= ADMIN_PASSWORD= UPDATE_ON_BOOT=true RCON_ENABLED=false RCON_PORT=25575 QUERY_PORT=27015 REST_API_ENABLED=true REST_API_PORT=8212 TZ=UTC SERVER_DESCRIPTION= BACKUP_ENABLED=true DELETE_OLD_BACKUPS=false OLD_BACKUP_DAYS=30 BACKUP_CRON_EXPRESSION=0 0 * * * AUTO_UPDATE_ENABLED=false AUTO_UPDATE_CRON_EXPRESSION=0 * * * * AUTO_UPDATE_WARN_MINUTES=30 AUTO_REBOOT_ENABLED=false AUTO_REBOOT_WARN_MINUTES=5 AUTO_REBOOT_EVEN_IF_PLAYERS_ONLINE=false AUTO_REBOOT_CRON_EXPRESSION=0 0 * * * AUTO_PAUSE_ENABLED=false AUTO_PAUSE_TIMEOUT_EST=180 AUTO_PAUSE_LOG=true AUTO_PAUSE_DEBUG=false DISCORD_SUPPRESS_NOTIFICATIONS= DISCORD_WEBHOOK_URL= DISCORD_CONNECT_TIMEOUT=30 DISCORD_MAX_TIMEOUT=30 DISCORD_PRE_UPDATE_BOOT_MESSAGE=Server is updating... DISCORD_PRE_UPDATE_BOOT_MESSAGE_URL= DISCORD_PRE_UPDATE_BOOT_MESSAGE_ENABLED=true DISCORD_POST_UPDATE_BOOT_MESSAGE=Server update complete! DISCORD_POST_UPDATE_BOOT_MESSAGE_URL= DISCORD_POST_UPDATE_BOOT_MESSAGE_ENABLED=true DISCORD_PRE_START_MESSAGE=Server has been started! DISCORD_PRE_START_MESSAGE_URL= DISCORD_PRE_START_MESSAGE_ENABLED=true DISCORD_PRE_SHUTDOWN_MESSAGE=Server is shutting down... DISCORD_PRE_SHUTDOWN_MESSAGE_URL= DISCORD_PRE_SHUTDOWN_MESSAGE_ENABLED=true DISCORD_POST_SHUTDOWN_MESSAGE=Server has been stopped! DISCORD_POST_SHUTDOWN_MESSAGE_URL= DISCORD_POST_SHUTDOWN_MESSAGE_ENABLED=true DISCORD_PLAYER_JOIN_MESSAGE=player_name has joined Palworld! DISCORD_PLAYER_JOIN_MESSAGE_URL= DISCORD_PLAYER_JOIN_MESSAGE_ENABLED=true DISCORD_PLAYER_LEAVE_MESSAGE=player_name has left Palworld. DISCORD_PLAYER_LEAVE_MESSAGE_URL= DISCORD_PLAYER_LEAVE_MESSAGE_ENABLED=true DISCORD_PRE_BACKUP_MESSAGE=Creating backup... DISCORD_PRE_BACKUP_MESSAGE_URL= DISCORD_PRE_BACKUP_MESSAGE_ENABLED=true DISCORD_POST_BACKUP_MESSAGE=Backup created at file_path DISCORD_POST_BACKUP_MESSAGE_URL= DISCORD_POST_BACKUP_MESSAGE_ENABLED=true DISCORD_PRE_BACKUP_DELETE_MESSAGE=Removing backups older than old_backup_days days DISCORD_PRE_BACKUP_DELETE_MESSAGE_URL= DISCORD_PRE_BACKUP_DELETE_MESSAGE_ENABLED=true DISCORD_POST_BACKUP_DELETE_MESSAGE=Removed backups older than old_backup_days days DISCORD_POST_BACKUP_DELETE_MESSAGE_URL= DISCORD_POST_BACKUP_DELETE_MESSAGE_ENABLED=true DISCORD_ERR_BACKUP_DELETE_MESSAGE=Unable to delete old backups, OLD_BACKUP_DAYS is not an integer. OLD_BACKUP_DAYS=old_backup_days DISCORD_ERR_BACKUP_DELETE_MESSAGE_URL= DISCORD_ERR_BACKUP_DELETE_MESSAGE_ENABLED=true ENABLE_PLAYER_LOGGING=true PLAYER_LOGGING_POLL_PERIOD=5 ARM64_DEVICE=generic DISABLE_GENERATE_ENGINE=true CROSSPLAY_PLATFORMS=(Steam,Xbox,PS5,Mac) USE_DEPOT_DOWNLOADER=false INSTALL_BETA_INSIDER=false LOG_FILTER_ENABLED=true LOG_FORMAT_TYPE=default |
| ENV BOX64_DYNAREC_STRONGMEM=1 BOX64_DYNAREC_BIGBLOCK=1 BOX64_DYNAREC_SAFEFLAGS=1 BOX64_DYNAREC_FASTROUND=1 BOX64_DYNAREC_FASTNAN=1 BOX64_DYNAREC_X87DOUBLE=0 |
| ARG GIT_VERSION_TAG=2.3.2 |
| COPY ./scripts /home/steam/server/ # buildkit |
| RUN |6 SUPERCRONIC_SHA1SUM_ARM64=5c6266786c2813d6f8a99965d84452faae42b483 SUPERCRONIC_SHA1SUM_AMD64=f97b92132b61a8f827c3faf67106dc0e4467ccf2 SUPERCRONIC_VERSION=0.2.43 DEPOT_DOWNLOADER_VERSION=3.4.0 TARGETARCH=amd64 GIT_VERSION_TAG=2.3.2 /bin/bash -o pipefail -c chmod +x /home/steam/server/*.sh && mv /home/steam/server/backup.sh /usr/local/bin/backup && mv /home/steam/server/update.sh /usr/local/bin/update && mv /home/steam/server/restore.sh /usr/local/bin/restore && ln -sf /home/steam/server/rest_api.sh /usr/local/bin/rest-cli # buildkit |
| RUN |6 SUPERCRONIC_SHA1SUM_ARM64=5c6266786c2813d6f8a99965d84452faae42b483 SUPERCRONIC_SHA1SUM_AMD64=f97b92132b61a8f827c3faf67106dc0e4467ccf2 SUPERCRONIC_VERSION=0.2.43 DEPOT_DOWNLOADER_VERSION=3.4.0 TARGETARCH=amd64 GIT_VERSION_TAG=2.3.2 /bin/bash -o pipefail -c chmod +x /home/steam/server/autopause/*.sh && ln -sf /home/steam/server/autopause/autopause.sh /usr/local/bin/autopause && ln -sf /home/steam/server/autopause/knockd-ctl.sh /usr/local/sbin/knockd-ctl # buildkit |
| RUN |6 SUPERCRONIC_SHA1SUM_ARM64=5c6266786c2813d6f8a99965d84452faae42b483 SUPERCRONIC_SHA1SUM_AMD64=f97b92132b61a8f827c3faf67106dc0e4467ccf2 SUPERCRONIC_VERSION=0.2.43 DEPOT_DOWNLOADER_VERSION=3.4.0 TARGETARCH=amd64 GIT_VERSION_TAG=2.3.2 /bin/bash -o pipefail -c mkdir -p /home/steam/.mitmproxy && openssl genrsa -out ca.key 2048 && openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt -addext keyUsage=critical,keyCertSign -subj "/CN=rootca" && cat ca.key ca.crt > /home/steam/.mitmproxy/mitmproxy-ca.pem && rm ca.key && mv ca.crt /usr/local/share/ca-certificates/mitmproxy.crt && update-ca-certificates # buildkit |
| WORKDIR /home/steam/server |
| RUN |6 SUPERCRONIC_SHA1SUM_ARM64=5c6266786c2813d6f8a99965d84452faae42b483 SUPERCRONIC_SHA1SUM_AMD64=f97b92132b61a8f827c3faf67106dc0e4467ccf2 SUPERCRONIC_VERSION=0.2.43 DEPOT_DOWNLOADER_VERSION=3.4.0 TARGETARCH=amd64 GIT_VERSION_TAG=2.3.2 /bin/bash -o pipefail -c echo $GIT_VERSION_TAG > GIT_VERSION_TAG # buildkit |
| RUN |6 SUPERCRONIC_SHA1SUM_ARM64=5c6266786c2813d6f8a99965d84452faae42b483 SUPERCRONIC_SHA1SUM_AMD64=f97b92132b61a8f827c3faf67106dc0e4467ccf2 SUPERCRONIC_VERSION=0.2.43 DEPOT_DOWNLOADER_VERSION=3.4.0 TARGETARCH=amd64 GIT_VERSION_TAG=2.3.2 /bin/bash -o pipefail -c touch rcon.yaml crontab && mkdir -p /home/steam/Steam/package && chown steam:steam /home/steam/Steam/package && rm -rf /tmp/dumps && chmod o+w rcon.yaml crontab /home/steam/Steam/package && chown steam:steam -R /home/steam/server # buildkit |
| HEALTHCHECK &{["CMD-SHELL" "pgrep \"PalServer-Linux\" > /dev/null || exit 1"] "0s" "0s" "5m0s" "0s" '\x00'} |
| EXPOSE [25575/tcp] |
| ENTRYPOINT ["/home/steam/server/init.sh"] |