24 lines
875 B
Docker
24 lines
875 B
Docker
# MSCO dedizierter Server
|
|
# docker build -t msco-server MSCO.Server
|
|
# docker run -it -p 7777:7777 -v msco-server-data:/data msco-server
|
|
# Daten (server.json, save/, world.json) liegen im Volume /data.
|
|
|
|
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
|
|
WORKDIR /src
|
|
COPY . .
|
|
RUN dotnet publish -c Release -o /app
|
|
|
|
FROM mcr.microsoft.com/dotnet/runtime:10.0
|
|
WORKDIR /app
|
|
COPY --from=build /app .
|
|
ENV MSCO_DATA=/data
|
|
# läuft als beliebige Benutzer-ID (docker compose "user:") - dann gibt es kein eigenes Home
|
|
ENV HOME=/tmp
|
|
# Befehle an den laufenden Server: docker exec msco-server msco players
|
|
RUN printf '#!/bin/sh\nexec dotnet /app/MSCO.Server.dll --cmd "$@"\n' > /usr/local/bin/msco && chmod +x /usr/local/bin/msco
|
|
VOLUME /data
|
|
EXPOSE 7777/tcp
|
|
# docker stop schickt SIGTERM -> Server speichert den Weltzustand
|
|
STOPSIGNAL SIGTERM
|
|
ENTRYPOINT ["dotnet", "MSCO.Server.dll"]
|