/
/
/
1# FROM ghcr.io/music-assistant/server:beta
2
3# RUN set -x \
4# && apt-get update \
5# && apt-get install -y --no-install-recommends \
6# jq htop
7
8# COPY entrypoint.sh /home
9# ENTRYPOINT ["/home/entrypoint.sh"]
10
11
12
13# syntax=docker/dockerfile:1
14
15FROM python:3.12-alpine3.20
16
17ARG MASS_VERSION=2.3.0b8
18
19RUN set -x \
20 && apk add --no-cache \
21 ca-certificates \
22 jemalloc \
23 curl \
24 git \
25 wget \
26 tzdata \
27 sox \
28 samba \
29 # install ffmpeg from community repo
30 && apk add ffmpeg --repository=https://dl-cdn.alpinelinux.org/alpine/v3.20/community \
31 # install snapcast from community repo
32 && apk add snapcast --repository=https://dl-cdn.alpinelinux.org/alpine/v3.20/community \
33 # install libnfs from community repo
34 && apk add libnfs --repository=https://dl-cdn.alpinelinux.org/alpine/v3.20/community
35
36
37# Upgrade pip + Install uv
38RUN pip install --upgrade pip \
39 && pip install uv==0.2.27
40
41# Install Music Assistant from published wheel on PyPi
42RUN uv pip install \
43 --system \
44 --no-cache \
45 --find-links "https://wheels.home-assistant.io/musllinux/" \
46 music-assistant[server]==${MASS_VERSION}
47
48# Enable jemalloc
49RUN export LD_PRELOAD="/usr/local/lib/libjemalloc.so.2"
50
51# Set some labels
52LABEL \
53 org.opencontainers.image.title="Music Assistant Server" \
54 org.opencontainers.image.description="Music Assistant Server/Core" \
55 org.opencontainers.image.source="https://github.com/music-assistant/server" \
56 org.opencontainers.image.authors="The Music Assistant Team" \
57 org.opencontainers.image.documentation="https://github.com/orgs/music-assistant/discussions" \
58 org.opencontainers.image.licenses="Apache License 2.0" \
59 io.hass.version="${MASS_VERSION}" \
60 io.hass.type="addon" \
61 io.hass.name="Music Assistant Server" \
62 io.hass.description="Music Assistant Server/Core" \
63 io.hass.platform="${TARGETPLATFORM}" \
64 io.hass.type="addon"
65
66VOLUME [ "/data" ]
67EXPOSE 8095
68
69COPY entrypoint.sh /home
70ENTRYPOINT ["/home/entrypoint.sh"]
71