FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/2sharkystudios/yolks:ubuntu LABEL author="Kyle Speight" maintainer="chillcog3142@proton.me" ENV DEBIAN_FRONTEND=noninteractive # 1. Install prerequisites RUN apt-get update && apt-get install -y \ ca-certificates \ gnupg \ lsb-release \ wget \ curl \ && rm -rf /var/lib/apt/lists/* # 2. Install .NET SDK RUN wget -q https://dot.net/v1/dotnet-install.sh \ && chmod +x dotnet-install.sh \ && D_V="$(curl -sSL https://dotnet.microsoft.com/en-us/download/dotnet/9.0 | grep -i '

SDK 9.*.*

' | head -1 | awk -F\" '{print $3}' | awk '{print $2;}' | sed 's/<\/h3>//g')" \ && ./dotnet-install.sh -i /usr/share -v "$D_V" \ && ln -s /usr/share/dotnet /usr/bin/dotnet \ && rm dotnet-install.sh # 3. Install PowerShell (FIXED: Map 'noble' to 'ubuntu24.04') # Instead of directly using the lsb_release codename, explicitly map it or use a fallback RUN mkdir -p /etc/apt/keyrings \ && curl -sSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /etc/apt/keyrings/microsoft-prod.gpg \ && MS_CODENAME="$(lsb_release -cs)" \ && if [ "$MS_CODENAME" = "noble" ]; then MS_CODENAME="jammy"; fi \ && echo "deb [arch=amd64,arm64 signed-by=/etc/apt/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/repos/microsoft-ubuntu${MS_CODENAME}-prod ${MS_CODENAME} main" | tee /etc/apt/sources.list.d/microsoft-ubuntu-prod.list \ && apt-get update \ && apt-get install -y powershell \ && rm -rf /var/lib/apt/lists/* # 4. Install remaining dependencies RUN apt-get update && apt-get install -y \ git \ git-lfs \ iproute2 \ libgdiplus \ tini \ software-properties-common \ && rm -rf /var/lib/apt/lists/* # 5. Clone, Build, and Cleanup RUN mkdir -p /workspace/ /build/ \ && cd /workspace \ && git clone https://github.com/2SharkyStudios/SPT-Server-Build.git /workspace/git \ && cd /workspace/git/ \ && git lfs pull \ && cd /workspace/git/SPTarkov.Server/ \ && dotnet restore \ && dotnet publish -o /build/ -c Release -p:SptBuildType=RELEASE -p:SptVersion=4.0.11 \ && rm -rf /workspace/ # 6. Move build output to user home RUN mv /build/* /home/container/ 2>/dev/null || true \ && chown -R container:container /home/container/ USER container ENV USER=container HOME=/home/container WORKDIR /home/container STOPSIGNAL SIGINT COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh ENTRYPOINT ["/usr/bin/tini", "-g", "--"] CMD ["/entrypoint.sh"]