# 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"]