Optimize dockerfile
parent
f65a57964f
commit
d450fb5bf7
|
@ -1,18 +1,61 @@
|
||||||
FROM golang:1.21-bookworm as builder
|
FROM golang:1.21-bookworm as builder
|
||||||
|
|
||||||
|
ENV FFMPEG_VERSION=5.1.2
|
||||||
|
ENV MPD_VERSION=0.23.14
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get -y install \
|
||||||
|
libopus-dev libopusfile-dev \
|
||||||
|
meson g++ nasm \
|
||||||
|
libfmt-dev \
|
||||||
|
libpcre2-dev \
|
||||||
|
libmad0-dev libmpg123-dev libid3tag0-dev \
|
||||||
|
libflac-dev libvorbis-dev libopus-dev libogg-dev \
|
||||||
|
libadplug-dev libaudiofile-dev libsndfile1-dev libfaad-dev \
|
||||||
|
libsamplerate0-dev libsoxr-dev \
|
||||||
|
libcurl4-gnutls-dev \
|
||||||
|
libboost-dev \
|
||||||
|
zlib1g-dev
|
||||||
|
WORKDIR /tmp
|
||||||
|
RUN curl -LOs http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.xz && tar xvf ffmpeg-${FFMPEG_VERSION}.tar.xz && \
|
||||||
|
cd ffmpeg-${FFMPEG_VERSION} && \
|
||||||
|
./configure \
|
||||||
|
--enable-version3 \
|
||||||
|
--enable-gpl \
|
||||||
|
--enable-nonfree \
|
||||||
|
--enable-small \
|
||||||
|
--enable-libvorbis \
|
||||||
|
--enable-libopus \
|
||||||
|
--enable-postproc \
|
||||||
|
--enable-openssl \
|
||||||
|
--disable-debug && \
|
||||||
|
make && \
|
||||||
|
make install
|
||||||
|
RUN curl -LOs https://www.musicpd.org/download/mpd/0.23/mpd-${MPD_VERSION}.tar.xz && tar xvf mpd-${MPD_VERSION}.tar.xz && \
|
||||||
|
cd mpd-${MPD_VERSION} && \
|
||||||
|
meson . output/release --buildtype=minsize -Db_ndebug=true && \
|
||||||
|
ninja -C output/release
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN apt-get update && apt-get -y install libopus-dev libopusfile-dev && \
|
RUN go build
|
||||||
go build
|
|
||||||
|
|
||||||
FROM debian:bookworm-slim
|
FROM debian:bookworm-slim
|
||||||
RUN apt-get update && apt-get -y install \
|
RUN apt-get update && apt-get -y install \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
libopus-dev libopusfile-dev \
|
libopus-dev libopusfile-dev \
|
||||||
mpd ffmpeg curl && \
|
libfmt-dev \
|
||||||
|
libpcre2-dev \
|
||||||
|
libmad0-dev libmpg123-dev libid3tag0-dev \
|
||||||
|
libflac-dev libvorbis-dev libopus-dev libogg-dev \
|
||||||
|
libadplug-dev libaudiofile-dev libsndfile1-dev libfaad-dev \
|
||||||
|
libsamplerate0-dev libsoxr-dev \
|
||||||
|
libcurl4-gnutls-dev \
|
||||||
|
curl && \
|
||||||
curl -L https://github.com/badaix/snapcast/releases/download/v0.27.0/snapclient_0.27.0-1_without-pulse_amd64.deb -o /tmp/snapcast.deb && \
|
curl -L https://github.com/badaix/snapcast/releases/download/v0.27.0/snapclient_0.27.0-1_without-pulse_amd64.deb -o /tmp/snapcast.deb && \
|
||||||
curl -L http://ftp.no.debian.org/debian/pool/main/f/flac/libflac8_1.3.3-2+deb11u2_amd64.deb -o /tmp/libflac8.deb && \
|
curl -L http://ftp.no.debian.org/debian/pool/main/f/flac/libflac8_1.3.3-2+deb11u2_amd64.deb -o /tmp/libflac8.deb && \
|
||||||
apt -y install /tmp/snapcast.deb /tmp/libflac8.deb
|
apt -y install /tmp/snapcast.deb /tmp/libflac8.deb && rm -rf /tmp/*.deb
|
||||||
COPY --from=builder /src/dndmusicbot /app/
|
COPY --from=builder /src/dndmusicbot /app/
|
||||||
|
COPY --from=builder /tmp/mpd-0.23.14/output/release/mpd /usr/local/bin
|
||||||
|
COPY --from=builder /usr/local/bin/ffmpeg /usr/local/bin
|
||||||
|
COPY mp3 /app/mp3
|
||||||
ADD tmpl /app/tmpl
|
ADD tmpl /app/tmpl
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
ENTRYPOINT [ "/app/dndmusicbot" ]
|
ENTRYPOINT [ "/app/dndmusicbot" ]
|
||||||
|
|
Loading…
Reference in New Issue