docker-vgmpd/Dockerfile
2024-02-13 17:36:28 -03:00

65 lines
3.6 KiB
Docker

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"]