Files
yolks/tarkov/v4.0.11/Dockerfile
T
2026-05-29 23:08:08 -07:00

69 lines
2.8 KiB
Docker

FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/2sharkystudios/yolks:ubuntu
LABEL author="Kyle Speight" maintainer="chillcog3142@proton.me"
ENV DEBIAN_FRONTEND=noninteractive
# 1. Install prerequisites (including ca-certificates for HTTPS)
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 '<h3 id="sdk-9.*">SDK 9.*.*</h3>' | 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: Using GPG Key method for Multi-Arch support)
# This method automatically picks the correct package for amd64 or arm64
RUN mkdir -p /etc/apt/keyrings \
&& curl -sSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /etc/apt/keyrings/microsoft-prod.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/repos/microsoft-$(lsb_release -cs)-prod $(lsb_release -cs) main" > /etc/apt/sources.list.d/microsoft-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"]