8a94ffd58f
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
81 lines
2.8 KiB
Docker
81 lines
2.8 KiB
Docker
# panel-native Conan Exiles runtime image.
|
|
#
|
|
# Conan Exiles Dedicated Server is a Windows-only UE4 build. We bring just
|
|
# enough Wine + Xvfb to host it headlessly. SteamCMD is NOT installed here —
|
|
# the panel's generic updater sidecar uses the official steamcmd image and
|
|
# writes into our /game volume.
|
|
#
|
|
# Expected runtime layout inside the container:
|
|
# /game — SteamCMD install
|
|
# /game/ConanSandbox/Binaries/Win64/ConanSandboxServer-Win64-Shipping.exe — server binary
|
|
# /game/ConanSandbox/Saved/Config/WindowsServer/*.ini — config files
|
|
# /game/ConanSandbox/Mods/ — workshop paks + modlist.txt
|
|
# /game-saves — saves, configs, logs
|
|
# /entrypoint.sh — boot Xvfb, launch exe under Wine
|
|
|
|
FROM debian:12-slim
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive \
|
|
TZ=Etc/UTC \
|
|
LANG=en_US.UTF-8 \
|
|
LC_ALL=en_US.UTF-8 \
|
|
WINEDEBUG=-all \
|
|
WINEPREFIX=/home/panel/.wine \
|
|
DISPLAY=:99
|
|
|
|
# Wine pulls in ~500 MB of deps. Keep the 64-bit stack (dedicated binary is
|
|
# x86_64). cabextract + winbind satisfy Wine's helpers; procps for signal
|
|
# handling and pgrep/pkill debugging.
|
|
#
|
|
# The libfontconfig1 ... libasound2 block is the UE5 dedicated-server runtime
|
|
# dep set for the native Linux Conan Enhanced binary at
|
|
# /game/ConanSandbox/Binaries/Linux/ConanSandboxServer-Linux-Shipping. Funcom's
|
|
# UE5 ELF dynamically links against these even in headless server mode (UE5
|
|
# pulls in font/X/SDL/audio plumbing during engine init). Kept alongside Wine
|
|
# so a single image can host either edition — Wine still drives the legacy
|
|
# UE4 (conan-exiles-legacy) Windows-only path.
|
|
RUN dpkg --add-architecture i386 \
|
|
&& apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
locales \
|
|
tini \
|
|
curl \
|
|
xvfb \
|
|
xauth \
|
|
wine64 \
|
|
wine \
|
|
winbind \
|
|
cabextract \
|
|
procps \
|
|
libfontconfig1 \
|
|
libfreetype6 \
|
|
libxcursor1 \
|
|
libxinerama1 \
|
|
libxi6 \
|
|
libxrandr2 \
|
|
libxxf86vm1 \
|
|
libgl1 \
|
|
libvulkan1 \
|
|
libsdl2-2.0-0 \
|
|
libpulse0 \
|
|
libasound2 \
|
|
&& sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \
|
|
&& locale-gen \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN groupadd -g 1000 panel \
|
|
&& useradd -u 1000 -g 1000 -m -s /bin/bash panel \
|
|
&& mkdir -p /game /game-saves \
|
|
&& chown -R panel:panel /game /game-saves /home/panel
|
|
|
|
COPY entrypoint.sh /entrypoint.sh
|
|
RUN chmod +x /entrypoint.sh
|
|
|
|
# Conan Exiles default ports (see module.yaml comment for reference).
|
|
EXPOSE 7777/tcp 7777/udp 7778/udp 27015/udp
|
|
EXPOSE 25575/tcp
|
|
|
|
ENTRYPOINT ["/usr/bin/tini", "--", "/entrypoint.sh"]
|