fix acc server container restarting

This commit is contained in:
2026-03-19 19:23:33 +01:00
parent 99d7e5fdc9
commit 21265a649b
4 changed files with 28 additions and 19 deletions

View File

@@ -15,10 +15,9 @@ RUN dpkg --add-architecture i386 && \
&& \
rm -rf /var/lib/apt/lists/*
# Create a non-root user for running the server.
RUN useradd -ms /bin/bash accserver
RUN mkdir -p /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix
WORKDIR /home/accserver
WORKDIR /root
# Copy entrypoint script.
COPY entrypoint.sh /entrypoint.sh
@@ -30,10 +29,8 @@ VOLUME ["/acc/game"]
# Default server port — overridden at runtime via SERVER_PORT env var.
ENV SERVER_PORT=9600
ENV WINEDEBUG=-all
ENV DISPLAY=:99
EXPOSE ${SERVER_PORT}/tcp
EXPOSE ${SERVER_PORT}/udp
USER accserver
ENTRYPOINT ["/entrypoint.sh"]

View File

@@ -1,7 +1,15 @@
#!/bin/bash
set -e
Xvfb :99 -screen 0 1024x768x16 &
# Use a display number derived from the server port to avoid conflicts
# between containers (each server gets its own unique display).
DISPLAY_NUM=$((SERVER_PORT % 1000 + 100))
export DISPLAY=:${DISPLAY_NUM}
# Clean up any stale X lock from a previous container run.
rm -f /tmp/.X${DISPLAY_NUM}-lock /tmp/.X11-unix/X${DISPLAY_NUM} 2>/dev/null || true
Xvfb ${DISPLAY} -screen 0 1024x768x16 -nolisten tcp &
XVFB_PID=$!
cleanup() {
@@ -10,7 +18,9 @@ cleanup() {
}
trap cleanup SIGTERM SIGINT
mkdir -p /acc/game/log
echo "Starting ACC server on port ${SERVER_PORT}..."
exec wine /acc/game/accServer.exe \
-port "${SERVER_PORT}"
cd /acc/game
exec wine /acc/game/accServer.exe