# Dolphin Emulator Traversal Server # Lightweight NAT hole-punching relay for Dolphin netplay # Supports ALL GameCube/Wii games via Dolphin # --- Build stage --- FROM debian:bookworm AS build RUN apt-get update && apt-get install -y \ build-essential cmake git pkg-config \ libfmt-dev libenet-dev libcurl4-openssl-dev \ libbz2-dev liblzma-dev libzstd-dev zlib1g-dev \ liblzo2-dev liblz4-dev libspng-dev \ libusb-1.0-0-dev libevdev-dev libpugixml-dev libxxhash-dev \ libminiupnpc-dev libhidapi-dev libsystemd-dev libudev-dev \ glslang-dev glslang-tools \ && rm -rf /var/lib/apt/lists/* WORKDIR /dolphin RUN git clone --depth 1 https://github.com/dolphin-emu/dolphin.git . \ && git submodule update --init --recursive --depth 1 RUN mkdir build && cd build && cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DENABLE_QT=OFF \ -DENABLE_NOGUI=OFF \ -DENABLE_CLI=OFF \ -DENABLE_TESTS=OFF \ -DUSE_DISCORD_PRESENCE=OFF \ -DENABLE_AUTOUPDATE=OFF \ -DENABLE_ANALYTICS=OFF RUN cd build && cmake --build . --target traversal_server -j$(nproc) # --- Runtime stage --- FROM debian:bookworm-slim RUN apt-get update && apt-get install -y \ libfmt9 libstdc++6 \ && rm -rf /var/lib/apt/lists/* RUN useradd -r -s /bin/false dolphin COPY --from=build /dolphin/build/Binaries/traversal_server /usr/local/bin/traversal_server USER dolphin EXPOSE 6262/udp EXPOSE 6226/udp CMD ["traversal_server"]