aboutsummaryrefslogtreecommitdiff
path: root/docker/dedicated-server/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'docker/dedicated-server/Dockerfile')
-rw-r--r--docker/dedicated-server/Dockerfile33
1 files changed, 33 insertions, 0 deletions
diff --git a/docker/dedicated-server/Dockerfile b/docker/dedicated-server/Dockerfile
new file mode 100644
index 00000000..14760afd
--- /dev/null
+++ b/docker/dedicated-server/Dockerfile
@@ -0,0 +1,33 @@
+FROM debian:bookworm-slim
+
+ARG DEBIAN_FRONTEND=noninteractive
+# basically, it only works with a Release build.(libs are not included in Debug build)
+ARG MC_RUNTIME_DIR=x64/Minecraft.Server/Release
+
+RUN dpkg --add-architecture i386 \
+ && apt-get update \
+ && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ wine \
+ wine64 \
+ wine32:i386 \
+ xvfb \
+ tini \
+ && rm -rf /var/lib/apt/lists/*
+
+ENV WINEARCH=win64
+ENV WINEPREFIX=/var/opt/wineprefix64
+
+WORKDIR /srv/mc
+
+COPY ${MC_RUNTIME_DIR}/Minecraft.Server.exe /srv/mc/Minecraft.Server.exe
+COPY ${MC_RUNTIME_DIR}/iggy_w64.dll /srv/mc/iggy_w64.dll
+COPY ${MC_RUNTIME_DIR}/Common /srv/mc/Common
+COPY ${MC_RUNTIME_DIR}/Windows64 /srv/mc/Windows64
+COPY docker/dedicated-server/entrypoint.sh /usr/local/bin/entrypoint.sh
+
+RUN chmod 0755 /usr/local/bin/entrypoint.sh \
+ && mkdir -p /var/opt/wineprefix64 /srv/mc \
+ && test -f /srv/mc/Minecraft.Server.exe
+
+ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/entrypoint.sh"]