osu/Dockerfile

61 lines
1.8 KiB
Docker
Raw Normal View History

2024-05-09 02:27:53 +02:00
FROM mcr.microsoft.com/dotnet/sdk:8.0 as builder
2019-11-15 22:46:02 +01:00
ENV DOTNET_CLI_TELEMETRY_OPTOUT 1
RUN apt-get update \
&& apt-get -y install jq
2024-05-09 02:31:02 +02:00
ARG OSU_VERSION
ENV OSU_VERSION=$OSU_VERSION
2024-05-09 02:31:02 +02:00
RUN echo "Downloading and building osu! ${OSU_VERSION}" >&2 \
2020-07-10 22:38:12 +02:00
&& git clone --depth=1 --single-branch -b ${OSU_VERSION} https://github.com/ppy/osu \
2019-11-15 22:46:02 +01:00
&& cd osu \
2020-08-25 13:29:27 +02:00
&& dotnet publish \
-c Release \
-r linux-x64 \
2020-09-13 15:09:55 +02:00
--no-self-contained \
2020-08-25 13:29:27 +02:00
-o /opt/osu/ \
-p:Version=${OSU_VERSION} \
osu.Desktop
2019-11-15 22:46:02 +01:00
2020-09-13 15:35:43 +02:00
RUN for ruleset in \
"Bosu|https://github.com/EVAST9919/bosu" \
"Hitokori|https://github.com/Flutterish/Hitokori" \
"Karaoke|https://github.com/karaoke-dev/karaoke" \
"Mvis|https://github.com/EVAST9919/lazer-m-vis" \
"Rush|https://github.com/swoolcock/rush" \
"Sentakki|https://github.com/LumpBloom7/sentakki" \
"Swing|https://github.com/EVAST9919/lazer-swing" \
"Tau|https://github.com/Altenhh/tau" \
; do \
repo_url="$(echo $ruleset | cut -d'|' -f2)" \
&& assembly_name="osu.Game.Rulesets.$(echo $ruleset | cut -d'|' -f1)" \
&& git clone --depth=1 "$repo_url" ruleset \
&& cd ruleset \
&& dotnet build \
-c Release \
"$assembly_name" \
&& cp "${assembly_name}"/bin/Release/net*/"${assembly_name}".dll /opt/osu/ \
&& cd .. \
&& rm -rf ruleset \
; done
2024-05-09 02:27:53 +02:00
FROM mcr.microsoft.com/dotnet/runtime:8.0
2019-11-15 22:46:02 +01:00
RUN apt-get update \
&& apt-get -y install --no-install-recommends \
ffmpeg \
2020-08-25 13:19:30 +02:00
libegl1-mesa-dev \
libgbm1 \
2019-11-15 22:46:02 +01:00
libgl1 \
pulseaudio \
&& rm -rf /var/lib/apt/lists/*
2019-11-15 22:46:02 +01:00
COPY --from=builder /opt/osu/ /opt/osu/
RUN adduser --disabled-password --gecos '' osu
USER osu
2020-08-25 13:29:27 +02:00
ENTRYPOINT ["/opt/osu/osu!"]