Files
neon-vortex/mpd/Dockerfile

61 lines
1.3 KiB
Docker
Raw Normal View History

# Optimized MPD Docker Image with latest packages
# Multi-architecture support: amd64, arm64, armv7
FROM alpine:3.21
# Install MPD and all audio codecs/plugins
RUN apk add --no-cache \
# Core MPD
mpd \
mpd-doc \
# Audio encoders/decoders
lame \
lame-doc \
opus \
opus-tools \
vorbis-tools \
flac \
wavpack \
faad2 \
# FFmpeg for broader codec support
ffmpeg \
ffmpeg-libs \
# Network protocols
libsmbclient \
libnfs \
curl \
# Audio outputs
alsa-lib \
pulseaudio \
pipewire \
# Utilities
bash \
tini \
# Development tools for debugging (optional, remove to reduce size)
# ncmpcpp \
# mpc \
&& rm -rf /var/cache/apk/*
# Create MPD directories with proper permissions
RUN mkdir -p \
/var/lib/mpd \
/var/lib/mpd/music \
/var/lib/mpd/playlists \
/var/lib/mpd/data \
/var/log/mpd \
/run/mpd \
&& chown -R mpd:audio /var/lib/mpd /var/log/mpd /run/mpd
# Copy optimized default configuration
COPY mpd.conf /etc/mpd.conf
RUN chown mpd:audio /etc/mpd.conf
# Expose MPD control port and HTTP streaming port
EXPOSE 6600 8000
# Use tini as init system for proper signal handling
ENTRYPOINT ["/sbin/tini", "--"]
# Run MPD in foreground as mpd user
USER mpd
CMD ["mpd", "--no-daemon", "--stderr", "/etc/mpd.conf"]