osu/Dockerfile
Simon Bruder 9b29cff93e
Make cachebust parameter available as env var
This allows using an already built image that was built with cachebust
set without rebuilding osu.
2020-09-13 15:02:53 +02:00

44 lines
1.2 KiB
Docker

FROM mcr.microsoft.com/dotnet/core/sdk as builder
ENV DOTNET_CLI_TELEMETRY_OPTOUT 1
RUN apt-get update \
&& apt-get -y install jq
COPY disable-deployed-build.patch /tmp/
ARG CACHEBUST=1
ENV CACHEBUST=$CACHEBUST
RUN OSU_VERSION=$(curl -s https://api.github.com/repos/ppy/osu/releases/latest | jq -r .tag_name) \
&& git clone --depth=1 --single-branch -b ${OSU_VERSION} https://github.com/ppy/osu \
&& cd osu \
&& curl https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/games/osu-lazer/bypass-tamper-detection.patch | git apply \
&& git apply /tmp/disable-deployed-build.patch \
&& dotnet publish \
-c Release \
-r linux-x64 \
--self-contained true \
-o /opt/osu/ \
-p:PublishTrimmed=true \
-p:Version=${OSU_VERSION} \
osu.Desktop
FROM mcr.microsoft.com/dotnet/core/runtime-deps
RUN apt-get update \
&& apt-get -y install --no-install-recommends \
ffmpeg \
libegl1-mesa-dev \
libgbm1 \
libgl1 \
pulseaudio \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /opt/osu/ /opt/osu/
RUN adduser --disabled-password --gecos '' osu
USER osu
ENTRYPOINT ["/opt/osu/osu!"]