115e79f240
Docker-related files have been renamed and updated to better suit the GOG and Steam versions of the game. The README.md has been significantly expanded, improving explanation of server setup and usage details for each version.
69 lines
2.7 KiB
Plaintext
69 lines
2.7 KiB
Plaintext
# Pull base image.
|
|
FROM jlesage/baseimage-gui:debian-11
|
|
|
|
ARG STEAM_USER
|
|
ARG STEAM_PASS
|
|
# Steam appId
|
|
ARG SRCDS_APPID
|
|
|
|
# Set the name of the application.
|
|
ENV APP_NAME="StardewValley"
|
|
## Uses a distinct PATH from Stardew/game/ that GOG has.
|
|
ENV GAME_PATH="/data/Stardew/game"
|
|
|
|
## lib32gcc-s1 is required for steamcmd
|
|
RUN apt-get update && apt-get install -y wget unzip tar strace mono-complete xterm gettext-base jq netcat procps lib32gcc-s1 && apt-get clean
|
|
|
|
# Game + ModLoader 1.6.2 4.0.1
|
|
|
|
RUN mkdir -p ${GAME_PATH} && \
|
|
mkdir -p /data/nexus && \
|
|
mkdir -p /data/steamcmd
|
|
|
|
## FOR STEAM VERSION
|
|
RUN wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz -qO steamcmd.tar.gz && \
|
|
tar -xzvf steamcmd.tar.gz -C /data/steamcmd && \
|
|
cd /data/steamcmd
|
|
|
|
## Don't set the arg earlier, if you need to rebuild the container
|
|
## it will cache up to here when you change the ENV VAR
|
|
ARG STEAM_GUARD
|
|
|
|
RUN chown -R 1000:1000 /data && \
|
|
export HOME=/data && \
|
|
/data/steamcmd/steamcmd.sh +force_install_dir ${GAME_PATH} +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_GUARD} +app_update ${SRCDS_APPID} validate +quit
|
|
|
|
RUN mkdir -p /data/.steam/sdk32 && \
|
|
cp -v /data/steamcmd/linux32/steamclient.so /data/.steam/sdk32/steamclient.so && \
|
|
mkdir -p /data/.steam/sdk64 && \
|
|
cp -v /data/steamcmd/linux64/steamclient.so /data/.steam/sdk64/steamclient.so
|
|
## END STEAM VERSION
|
|
|
|
RUN wget -qO dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/d4b71fac-a2fd-4516-ac58-100fb09d796a/e79d6c2a8040b59bf49c0d167ae70a7b/dotnet-sdk-5.0.408-linux-arm64.tar.gz &&\
|
|
tar -zxf dotnet.tar.gz -C /usr/share/dotnet &&\
|
|
rm dotnet.tar.gz &&\
|
|
ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
|
|
|
|
RUN wget --user-agent="Mozilla" https://github.com/Pathoschild/SMAPI/releases/download/4.0.8/SMAPI-4.0.8-installer.zip -qO /data/nexus.zip && \
|
|
unzip /data/nexus.zip -d /data/nexus/ && \
|
|
SMAPI_INSTALLER=$(find /data/nexus -name 'SMAPI*.*Installer' -type f -path "*/SMAPI * installer/internal/linux/*" | head -n 1) && \
|
|
/bin/bash -c "SMAPI_NO_TERMINAL=true SMAPI_USE_CURRENT_SHELL=true echo -e '2\n\n' | \"$SMAPI_INSTALLER\" --install --game-path \"$GAME_PATH\"" || :
|
|
|
|
# Add Mods & Scripts
|
|
COPY ["mods/", "$GAME_PATH/Mods/"]
|
|
COPY scripts/ /opt/
|
|
|
|
RUN chmod +x $GAME_PATH/StardewValley && \
|
|
chmod -R 777 $GAME_PATH && \
|
|
chown -R 1000:1000 /data/Stardew && \
|
|
chmod +x /opt/*.sh
|
|
|
|
RUN mkdir /etc/services.d/utils && touch /etc/services.d/app/utils.dep
|
|
COPY run /etc/services.d/utils/run
|
|
RUN chmod +x /etc/services.d/utils/run
|
|
|
|
COPY start.sh $GAME_PATH/start.sh
|
|
RUN chmod +x $GAME_PATH/start.sh
|
|
COPY docker-entrypoint-steam.sh /startapp.sh
|
|
RUN chmod +x /startapp.sh
|