-
Notifications
You must be signed in to change notification settings - Fork 111
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch to ffmpeg 7.1 + other fixes for audio streaming (#1882)
Co-authored-by: Kostas Chatzikokolakis <kostas@chatzi.org>
- Loading branch information
1 parent
7e0042d
commit 679c62b
Showing
6 changed files
with
108 additions
and
78 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,48 +1,73 @@ | ||
# syntax=docker/dockerfile:1 | ||
|
||
# FINAL docker image for music assistant server | ||
# This image is based on the base image and installs | ||
# the music assistant server from our built wheel on top. | ||
|
||
# Builder image. It builds the venv that will be copied to the final image | ||
# | ||
ARG BASE_IMAGE_VERSION=latest | ||
FROM ghcr.io/music-assistant/base:$BASE_IMAGE_VERSION AS builder | ||
|
||
FROM ghcr.io/music-assistant/base:$BASE_IMAGE_VERSION | ||
# create venv which will be copied to the final image | ||
ENV VIRTUAL_ENV=/app/venv | ||
RUN uv venv $VIRTUAL_ENV | ||
|
||
ARG MASS_VERSION | ||
ARG TARGETPLATFORM | ||
ADD dist dist | ||
COPY requirements_all.txt . | ||
|
||
# pre-install ALL requirements | ||
# pre-install ALL requirements into the venv | ||
# comes at a cost of a slightly larger image size but is faster to start | ||
# because we do not have to install dependencies at runtime | ||
COPY requirements_all.txt . | ||
RUN uv pip install \ | ||
--no-cache \ | ||
--find-links "https://wheels.home-assistant.io/musllinux/" \ | ||
-r requirements_all.txt | ||
|
||
# Install Music Assistant from prebuilt wheel | ||
ARG MASS_VERSION | ||
RUN uv pip install \ | ||
--no-cache \ | ||
--find-links "https://wheels.home-assistant.io/musllinux/" \ | ||
"music-assistant@dist/music_assistant-${MASS_VERSION}-py3-none-any.whl" | ||
|
||
# we need to set (very permissive) permissions to the workdir | ||
# and /tmp to allow running the container as non-root | ||
# IMPORTANT: chmod here, NOT on the final image, to avoid creating extra layers and increase size! | ||
# | ||
RUN chmod -R 777 /app | ||
|
||
################################################################################################## | ||
|
||
# FINAL docker image for music assistant server | ||
|
||
FROM ghcr.io/music-assistant/base:$BASE_IMAGE_VERSION | ||
|
||
ENV VIRTUAL_ENV=/app/venv | ||
ENV PATH="$VIRTUAL_ENV/bin:$PATH" | ||
|
||
# copy the already build /app dir | ||
COPY --from=builder /app /app | ||
|
||
# the /app contents have correct permissions but for some reason /app itself does not. | ||
# so apply again, but ONLY to the dir (otherwise we increase the size) | ||
RUN chmod 777 /app | ||
|
||
# Set some labels | ||
ARG MASS_VERSION | ||
ARG TARGETPLATFORM | ||
LABEL \ | ||
org.opencontainers.image.title="Music Assistant Server" \ | ||
org.opencontainers.image.description="Music Assistant Server/Core" \ | ||
org.opencontainers.image.description="Music Assistant is a free, opensource Media library manager that connects to your streaming services and a wide range of connected speakers. The server is the beating heart, the core of Music Assistant and must run on an always-on device like a Raspberry Pi, a NAS or an Intel NUC or alike." \ | ||
org.opencontainers.image.source="https://github.com/music-assistant/server" \ | ||
org.opencontainers.image.authors="The Music Assistant Team" \ | ||
org.opencontainers.image.documentation="https://github.com/orgs/music-assistant/discussions" \ | ||
org.opencontainers.image.documentation="https://music-assistant.io" \ | ||
org.opencontainers.image.licenses="Apache License 2.0" \ | ||
io.hass.version="${MASS_VERSION}" \ | ||
io.hass.type="addon" \ | ||
io.hass.name="Music Assistant Server" \ | ||
io.hass.description="Music Assistant Server/Core" \ | ||
io.hass.description="Music Assistant Server" \ | ||
io.hass.platform="${TARGETPLATFORM}" \ | ||
io.hass.type="addon" | ||
|
||
RUN rm -rf dist | ||
|
||
VOLUME [ "/data" ] | ||
EXPOSE 8095 | ||
|
||
WORKDIR $VIRTUAL_ENV | ||
|
||
ENTRYPOINT ["mass", "--config", "/data"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file modified
BIN
-968 Bytes
(100%)
music_assistant/providers/airplay/bin/cliraop-linux-aarch64
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters