A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita
audio
rust
zig
deno
mpris
rockbox
mpd
1FROM rust:1.88-bookworm AS builder
2
3ARG GITHUB_TOKEN
4
5ARG TAG
6
7ENV GITHUB_ACCESS_TOKEN=${GITHUB_TOKEN}
8
9ENV GH_TOKEN=${GITHUB_TOKEN}
10
11ENV TAG=${TAG}
12
13RUN apt-get update && apt-get install -y build-essential \
14 libsdl2-dev \
15 libfreetype6-dev \
16 libunwind-dev \
17 curl \
18 wget \
19 zip \
20 unzip \
21 protobuf-compiler \
22 cmake
23
24RUN curl -Ssf https://pkgx.sh | sh
25
26RUN pkgm install zig@0.15.1 buf deno
27
28COPY . /app
29
30WORKDIR /app
31
32RUN mkdir -p build
33
34WORKDIR /app/webui/rockbox
35
36RUN deno install
37
38RUN deno run build
39
40WORKDIR /app/build-lib
41
42RUN ../tools/configure --target=sdlapp --type=N --lcdwidth=320 --lcdheight=240 --prefix=/usr/local && cp ../autoconf/autoconf.h .
43
44RUN make ziginstall -j$(nproc)
45
46RUN deno install -A -r -g https://cli.fluentci.io -n fluentci
47
48ENV PATH=/root/.local/bin:${PATH}
49
50WORKDIR /app
51
52RUN [ -n "$TAG" ] && fluentci run --wasm . release ; exit 0
53
54FROM debian:bookworm
55
56RUN apt-get update && apt-get install -y \
57 libsdl2-dev \
58 libfreetype6-dev \
59 libunwind-dev \
60 alsa-utils \
61 libasound2 \
62 pulseaudio
63
64COPY --from=builder /usr/local/lib/rockbox /usr/local/lib/rockbox
65
66COPY --from=builder /usr/local/share/rockbox /usr/local/share/rockbox
67
68COPY --from=builder /usr/local/bin/rockboxd /usr/local/bin/rockboxd
69
70ENV SDL_VIDEODRIVER=dummy
71
72EXPOSE 6061
73EXPOSE 6062
74EXPOSE 6063
75EXPOSE 6600
76
77CMD ["rockboxd"]