# Build from the repository root: # docker build -f streamer/tourney/Dockerfile -t vash-tourney streamer FROM oven/bun:1 AS build WORKDIR /src COPY tv/main.ts tv/main.ts COPY agent.ts obs.ts tosu.ts tourney.ts link.ts relay.ts vash-api.ts ./ RUN bun build tv/main.ts --compile --minify --outfile /vash-tv \ && bun build agent.ts --compile --minify --outfile /vash-agent FROM debian:bookworm-slim RUN sed -i 's/Components: main/Components: main contrib/' /etc/apt/sources.list.d/debian.sources \ && dpkg --add-architecture i386 \ && apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ wine wine32:i386 wine64 xvfb ffmpeg chromium tini ca-certificates \ fonts-noto-core fonts-noto-cjk fonts-noto-color-emoji xdotool tesseract-ocr \ pulseaudio pulseaudio-utils x11vnc novnc websockify libfuse2 \ winetricks cabextract wget unzip \ && rm -rf /var/lib/apt/lists/* \ && useradd --create-home --uid 1000 tv COPY --from=build /vash-tv /usr/local/bin/vash-tv COPY --from=build /vash-agent /usr/local/bin/vash-agent COPY tourney/start.sh /usr/local/bin/vash-tourney-start RUN chmod +x /usr/local/bin/vash-tourney-start USER tv ENV WINEPREFIX=/data/wine WINEARCH=win32 GAMEPLAY_DISPLAY=:98 GAMEPLAY_WIDTH=1280 GAMEPLAY_HEIGHT=720 \ OSU_EXE=/data/osu/osu!.exe TOSU_BIN=/data/tosu/tosu PULSE_SOURCE=vash.monitor WORKDIR /home/tv VOLUME /data EXPOSE 6080 ENTRYPOINT ["tini", "-g", "--", "vash-tourney-start"]