FROM golang:1 AS build WORKDIR /server COPY ./server/ /server RUN go build -o gametube ./cmd/gametube/ FROM ubuntu:noble ENV DEBIAN_FRONTEND=noninteractive \ DISPLAY=:99 \ PULSE_SERVER=unix:/tmp/pulse/native RUN apt-get update && apt-get install -y --no-install-recommends \ xvfb \ openbox \ pulseaudio \ ffmpeg \ dbus-x11 \ x11-utils \ wget \ ca-certificates \ x11-xkb-utils xkb-data \ && rm -rf /var/lib/apt/lists/* RUN mkdir -p /etc/xdg/openbox && \ echo "\n" > /etc/xdg/openbox/menu.xml RUN mkdir -p /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix RUN useradd -m -s /bin/bash gametube RUN mkdir -p /etc/pulse /var/run/pulse /tmp/pulse /run/user/1000 && \ chown -R gametube:gametube /etc/pulse /var/run/pulse /tmp/pulse /run/user/1000 COPY ./docker/pulse-client.conf /etc/pulse/client.conf COPY --from=build /server/gametube /home/gametube/bin/gametube RUN chmod 777 /home/gametube/bin/gametube USER gametube WORKDIR /home/gametube ENTRYPOINT ["/home/gametube/bin/gametube"]