Skip to content

Instantly share code, notes, and snippets.

@Falklian
Created February 8, 2017 16:39
Show Gist options
  • Save Falklian/1f5741a01f312cae3639f64e7f121cea to your computer and use it in GitHub Desktop.
Save Falklian/1f5741a01f312cae3639f64e7f121cea to your computer and use it in GitHub Desktop.
Dockerfile for running ConanSandboxServer.exe under Wine
#
# Conan Exiles Dedicated Server
#
# Example build command:
# docker build -t conan:latest .
#
# Example docker command to run (make sure -t is set, needs a tty to run):
# docker run -dt -p 7777:7777/udp -p 27015:27015/udp -v <local path>:/saved conan:latest
#
# Using Ubuntu 16.04 LTS
FROM ubuntu:16.04
# Set TERM=xterm to prevent 'term not set' annoyances and set Wine variables
ENV TERM=xterm \
WINEARCH=win64 \
WINEPREFIX=/root/.wine64
# Set up Wine apt list
RUN echo "deb http://ppa.launchpad.net/wine/wine-builds/ubuntu xenial main" > /etc/apt/sources.list.d/wine.list
# Add apt key for Wine
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B59525092DF44DD0CE1D5D47E61A24DF77C899CB
# Enable 32-bit architecture
RUN dpkg --add-architecture i386
# Update and install some stuff, then clean up
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get -y dist-upgrade && \
DEBIAN_FRONTEND=noninteractive apt-get -y install \
wget \
lib32gcc1 \
winehq-devel:amd64 && \
apt-get -y autoremove --purge && \
apt-get -y clean && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /tmp/*
# Download SteamCMD
RUN mkdir /steamcmd && \
cd /steamcmd && \
wget -qO- https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | tar -xzv
# Update SteamCMD and install Conan
RUN /steamcmd/steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir /conan \
+app_update 443030 +quit
# Open ports for Conan
EXPOSE 7777/udp 27015/udp
# Create symlink to Saved directory so it's a simpler path to map when starting the container
RUN ln -s /conan/ConanSandbox/Saved /saved
# Set up volume for save files
VOLUME ["/saved"]
# Path to executable
ENTRYPOINT ["/usr/bin/wine64"]
# Commands to pass to executable
CMD ["/conan/ConanSandboxServer.exe", "-log"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment