Updated to work on a raspberry pi
This commit is contained in:
parent
2d918a19bc
commit
4b6be075c1
37
Dockerfile
37
Dockerfile
@ -1,26 +1,25 @@
|
||||
FROM rust as build
|
||||
FROM --platform=$BUILDPLATFORM debian:bullseye-slim as build
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
RUN apt-get -yqq update && \
|
||||
apt-get install --no-install-recommends -yqq libasound2-dev && \
|
||||
git clone --branch=master https://github.com/Spotifyd/spotifyd.git .
|
||||
|
||||
RUN cargo build --release --features alsa_backend
|
||||
|
||||
FROM debian:bullseye-slim
|
||||
ENV SPOTIFYD_VERSION=v0.3.5
|
||||
ENV URL=https://github.com/Spotifyd/spotifyd/releases/download/${SPOTIFYD_VERSION}/spotifyd-linux-armhf-full.tar.gz
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -yqq --no-install-recommends libasound2 alsa-utils && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
groupadd -r spotify && \
|
||||
useradd --no-log-init -r -g spotify -G audio spotify
|
||||
apt-get install -yqq --no-install-recommends ca-certificates wget
|
||||
|
||||
USER spotify
|
||||
RUN wget ${URL} -O - | tar -xz && chmod +x /spotifyd
|
||||
|
||||
COPY --from=build /build/target/release/spotifyd /spotifyd
|
||||
COPY start.sh /start.sh
|
||||
FROM --platform=$TARGETPLATFORM debian:bullseye-slim
|
||||
|
||||
WORKDIR /
|
||||
COPY --from=build /spotifyd /app/spotifyd
|
||||
COPY start.sh /app/start.sh
|
||||
|
||||
ENTRYPOINT [ "/start.sh" ]
|
||||
RUN apt-get update && \
|
||||
apt-get install -yqq --no-install-recommends ca-certificates libdbus-1-3 libasound2 && \
|
||||
useradd -r -s /bin/false spotifyd && \
|
||||
usermod -a -G audio spotifyd && \
|
||||
chown -R spotifyd:spotifyd /app
|
||||
|
||||
USER spotifyd
|
||||
WORKDIR /app
|
||||
|
||||
ENTRYPOINT [ "/app/start.sh" ]
|
||||
|
10
README.md
10
README.md
@ -1,4 +1,6 @@
|
||||
# Spotifyd docker
|
||||
# Spotifyd docker (for armv7)
|
||||
|
||||
Spotifyd docker image made for the Raspberry Pi (but works on other armv7 devices too).
|
||||
|
||||
[Repo](https://git.kapelle.org/niklas/spotifyd-docker)
|
||||
|
||||
@ -10,8 +12,6 @@ Run [spotifyd](https://github.com/Spotifyd/spotifyd) inside docker. Inspired by
|
||||
|
||||
You need to add the `/dev/snd` to the container.
|
||||
|
||||
If the container starts successfully and you still hear no audio then the audio output may be disabled in alsa. In that case you can open bash inside your container and run `alsamixer`. There you can unmute the master. When it comes to alsa i recommend reading the [ArchWiki](https://wiki.archlinux.org/title/Advanced_Linux_Sound_Architecture) on this topic.
|
||||
|
||||
Check out the `docker-compose.yml` for an example.
|
||||
|
||||
# Configuration
|
||||
@ -33,3 +33,7 @@ Following variables are available. See the [spotifyd doc](https://spotifyd.githu
|
||||
`DEVICE_TYPE`# The displayed device type in Spotify clients. Can be `computer`, `tablet`, `smartphone`, `speaker`, `tv`, `avr`, `stb`, `audiodongle`.
|
||||
|
||||
`INITIAL_VOLUME` Volume on startup between 0 and 100.
|
||||
|
||||
`USE_MPRIS` Set to true to enable MPRIS support. You need to add the dbus socket to the container. Default: false.
|
||||
|
||||
`EXTRA_ARGS` Additional arguments passed to spotifyd.
|
||||
|
3
build.sh
Executable file
3
build.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
docker buildx build --platform linux/arm/v7 . -t djeeberjr/spotifyd --push
|
@ -4,7 +4,6 @@ services:
|
||||
spotifyd:
|
||||
container_name: spotify
|
||||
image: djeeberjr/spotifyd
|
||||
build: .
|
||||
devices:
|
||||
- "/dev/snd:/dev/snd"
|
||||
environment:
|
||||
|
12
start.sh
12
start.sh
@ -22,4 +22,14 @@ if [ -n "$INITIAL_VOLUME" ]; then
|
||||
ARGS="${ARGS} --initial-volume ${INITIAL_VOLUME}"
|
||||
fi
|
||||
|
||||
./spotifyd --no-daemon --username "$USERNAME" --password "$PASSWORD" --device-name "${DEVICE:=Spotifyd}" $ARGS
|
||||
# Disable mpris if not set to true
|
||||
if [ -z "$USE_MPRIS" ] || [ "$USE_MPRIS" != "true" ]; then
|
||||
ARGS="${ARGS} --use-mpris false"
|
||||
fi
|
||||
|
||||
# extra args
|
||||
if [ -n "$EXTRA_ARGS" ]; then
|
||||
ARGS="${ARGS} ${EXTRA_ARGS}"
|
||||
fi
|
||||
|
||||
/app/spotifyd --no-daemon --username "$USERNAME" --password "$PASSWORD" --device-name "${DEVICE:=Spotifyd}" $ARGS
|
||||
|
Loading…
Reference in New Issue
Block a user