FROM debian:11-slim as builder RUN apt update RUN apt -y install debconf-utils RUN apt -y install meson ninja-build RUN apt -y install build-essential git libpcre3-dev libmad0-dev libmpg123-dev libid3tag0-dev libflac-dev libvorbis-dev libopus-dev libogg-dev libadplug-dev libaudiofile-dev libsndfile1-dev libfaad-dev libfluidsynth-dev libgme-dev libmikmod-dev libmodplug-dev libmpcdec-dev libwavpack-dev libwildmidi-dev libsidplay2-dev libsidutils-dev libresid-builder-dev libavcodec-dev libavformat-dev libmp3lame-dev libtwolame-dev libshine-dev libsamplerate0-dev libsoxr-dev libbz2-dev libcdio-paranoia-dev libiso9660-dev libmms-dev libzzip-dev libcurl4-gnutls-dev libyajl-dev libexpat-dev libasound2-dev libao-dev libjack-jackd2-dev libopenal-dev libpulse-dev libshout3-dev libsndio-dev libmpdclient-dev libnfs-dev libupnp-dev libavahi-client-dev libsqlite3-dev libsystemd-dev libgtest-dev libboost-dev libicu-dev libchromaprint-dev libgcrypt20-dev RUN apt install -y cmake RUN mkdir -p /usr/src WORKDIR /usr/src RUN git clone https://github.com/kode54/psflib.git &&\ cd psflib &&\ make &&\ cp psflib.h /usr/local/include/psflib.h &&\ cp libpsflib.a /usr/local/lib/libpsflib.a RUN git clone https://github.com/joshware/lazyusf2.git &&\ cd lazyusf2 &&\ make &&\ cp usf/usf.h /usr/local/include/usf.h &&\ cp liblazyusf.a /usr/local/lib/liblazyusf2.a RUN git clone https://github.com/bbbradsmith/nsfplay.git -b 2.5 &&\ cd nsfplay/contrib &&\ make LIBS_ICONV= release &&\ make install RUN git clone https://github.com/jprjr/snes_spc.git &&\ cd snes_spc &&\ git reset --hard 187843d &&\ make &&\ make install RUN git clone https://github.com/jprjr/libid666.git &&\ cd libid666 &&\ make &&\ make install RUN git clone https://github.com/ValleyBell/libvgm.git &&\ mkdir libvgm-build &&\ cd libvgm-build &&\ cmake ../libvgm &&\ make &&\ make install RUN git clone https://github.com/jprjr/VGMPD.git -b v0.22.11-vgmpd &&\ cd VGMPD &&\ meson . output/release --buildtype=debugoptimized -Db_ndebug=true &&\ ninja -C output/release &&\ ninja -C output/release install FROM debian:11-slim COPY --from=builder /usr/src/VGMPD/output/release/mpd /usr/local/bin COPY --from=builder /usr/src/nsfplay/contrib/libnsfplay.so /usr/lib COPY --from=builder /usr/lib/libsidplay2.so.1.0.1 /usr/lib/libsidplay2.so COPY --from=builder /usr/lib/libsidutils.so.0.0.4 /usr/lib/libsidutils.so.0 COPY --from=builder /usr/lib/libresid-builder.so.0.0.1 /usr/lib/libresid-builder.so.0 COPY --from=builder /usr/lib/libhardsid-builder.so.0.0.1 /usr/lib/libhardsid-builder.so.0 COPY --from=builder /usr/src/libid666/libid666.so /usr/lib COPY --from=builder /usr/src/snes_spc/libspc.so /usr/lib COPY mpd.conf /etc COPY run /usr/local/sbin RUN chmod +x /usr/local/sbin/run &&\ mkdir /music RUN apt update RUN apt -y install --no-install-recommends libadplug-2.3.3-0 libao4 libasound2 libaudiofile1 libavahi-client3 libavahi-common3 libavcodec-extra58 libavformat58 libavutil56 libbz2-1.0 libc6 libcdio-cdda2 libcdio-paranoia2 libcdio19 libchromaprint1 libcurl3-gnutls libdbus-1-3 libexpat1 libfaad2 libflac8 libfluidsynth2 libgcc-s1 libgme0 libicu67 libid3tag0 libiso9660-11 libixml10 libjack-jackd2-0 libmad0 libmikmod3 libmms0 libmodplug1 libmp3lame0 libmpcdec6 libmpdclient2 libmpg123-0 libnfs13 libogg0 libopenal1 libopus0 libpcre3 libpulse0 libsamplerate0 libshout3 libsidplayfp5 libsmbclient libsndfile1 libsndio7.0 libsoxr0 libsqlite3-0 libstdc++6 libupnp13 liburing1 libvorbis0a libvorbisenc2 libwavpack1 libwildmidi2 libyajl2 libzzip-0-13 libjs-sphinxdoc &&\ rm -rf /var/lib/apt/lists/* VOLUME /var/lib/mpd ENTRYPOINT ["/usr/local/sbin/run"]