Dockerfile 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. FROM alpine:3.21 AS mympd
  2. ARG MYMPD_VER=20.0.0
  3. WORKDIR /myMPD
  4. RUN wget -O /tmp/mympd.tar.gz https://github.com/jcorporation/myMPD/archive/refs/tags/v${MYMPD_VER}.tar.gz
  5. RUN tar -xvf /tmp/mympd.tar.gz -C /myMPD --strip-components 1
  6. RUN ./build.sh installdeps
  7. RUN cmake -B "release" -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE=Release -DMYMPD_MANPAGES=OFF -DMYMPD_DOC=OFF .
  8. RUN make -j $(nproc) -C "release"
  9. FROM ghcr.io/gshang2017/mpd-bin:latest AS mpd
  10. FROM jlesage/baseimage-gui:alpine-3.21-v4
  11. ENV APP_NAME=MPD
  12. ENV TZ=Asia/Shanghai
  13. ENV HOME=/config
  14. ENV LC_ALL=C
  15. ENV WEB_AUDIO=1
  16. ENV USER_ID=1000
  17. ENV GROUP_ID=1000
  18. ENV MPD_PORT=6600
  19. ENV ENABLE_MYMPD=true
  20. ENV MYMPD_HTTP=true
  21. ENV MYMPD_HTTP_PORT=80
  22. ENV MYMPD_SSL=false
  23. ENV MYMPD_SSL_PORT=443
  24. ENV ENABLE_MPC_IDLE=true
  25. ENV BLUETOOTHD_OPTION=
  26. ENV ENABLE_FIX_OPENBOX_DECOR=false
  27. ENV NOVNC_LANGUAGE=en
  28. ENV BLUEMAN_LOGLEVEL=error
  29. COPY --chmod=755 root /
  30. COPY --chmod=755 startapp.sh /startapp.sh
  31. COPY --from=mympd --chmod=755 /myMPD/release/bin/mympd /usr/bin/
  32. COPY --from=mympd --chmod=755 /myMPD/release/bin/mympd-script /usr/bin/
  33. COPY --from=mympd --chmod=755 /myMPD/cli_tools/mympd-config/mympd-config /usr/bin/
  34. COPY --from=mpd --chmod=755 /usr/bin/mpd /usr/local/bin/mpd
  35. COPY --from=mpd --chmod=755 /usr/local/mpd/mpd.conf /usr/local/mpd/mpd.conf
  36. RUN apk update \
  37. && apk add --no-cache pulseaudio \
  38. && apk fix --no-cache pulseaudio \
  39. && apk add --no-cache bash libpulse-mainloop-glib bluez blueman blueman-lang pulseaudio-bluez \
  40. bluez-deprecated dbus-x11 mpd upower mpc adwaita-icon-theme font-wqy-zenhei gst-plugins-bad \
  41. #mpdris2
  42. && apk add --no-cache py3-mpd2 --repository https://dl-cdn.alpinelinux.org/alpine/edge/community \
  43. && apk add --no-cache mpdris2 mpdris2-doc --repository https://dl-cdn.alpinelinux.org/alpine/edge/testing \
  44. #myMPD
  45. && apk add --no-cache openssl libid3tag flac lua5.4 pcre2 newt \
  46. #pulse
  47. && sed -i 's/^load-module module-console-kit/#load-module module-console-kit/' /etc/pulse/default.pa \
  48. && mkdir -p /etc/pulse/default.pa.d \
  49. #app_icon
  50. && install_app_icon.sh https://raw.githubusercontent.com/gshang2017/docker/master/mpd/icon/mpd.png \
  51. #novnc_language
  52. && mv /opt/noVNC/index.html /opt/noVNC/index.html.en \
  53. #copy file
  54. && cp -f /etc/passwd /etc/bak.passwd \
  55. && cp -f /etc/group /etc/bak.group \
  56. && cp -f /etc/shadow /etc/bak.shadow \
  57. #clear
  58. && rm -rf /var/cache/apk/* /tmp/*
  59. VOLUME /config /var/lib/bluetooth
  60. EXPOSE 6600 80