Merge pull request #92 from linuxserver/3.17-master

Rebasing master to alpine 3.17
This commit is contained in:
Eric Nemchik 2023-03-10 15:55:08 -06:00 committed by GitHub
commit 0efe516128
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 92 additions and 110 deletions

0
.github/workflows/call_invalid_helper.yml vendored Executable file → Normal file
View file

0
.github/workflows/permissions.yml vendored Executable file → Normal file
View file

View file

@ -1,4 +1,6 @@
FROM ghcr.io/linuxserver/baseimage-alpine:3.15 # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:3.17
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@ -10,50 +12,44 @@ LABEL maintainer="aptalca"
RUN \ RUN \
echo "**** install build packages ****" && \ echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies --upgrade \ apk add --no-cache --virtual=build-dependencies --upgrade \
build-base \
cairo-dev \
cargo \
cmake \ cmake \
ffmpeg-dev \ ffmpeg-dev \
fftw-dev \ fftw-dev \
g++ \
gcc \
git \ git \
gobject-introspection-dev \
jpeg-dev \ jpeg-dev \
libpng-dev \ libpng-dev \
make \
mpg123-dev \ mpg123-dev \
openjpeg-dev \ openjpeg-dev \
python3-dev && \ python3-dev && \
echo "**** install runtime packages ****" && \ echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \ apk add --no-cache --upgrade \
curl \ chromaprint \
expat \ expat \
ffmpeg \ ffmpeg \
ffmpeg-libs \
fftw \ fftw \
flac \ flac \
gdbm \ gdbm \
gst-plugins-good \ gst-plugins-good \
gstreamer \ gstreamer \
jpeg \ jpeg \
jq \
lame \ lame \
libffi \ libffi \
libpng \ libpng \
mpg123 \ mpg123 \
nano \ nano \
openjpeg \ openjpeg \
py3-gobject3 \
py3-pip \
py3-pylast \
python3 \ python3 \
sqlite-libs \ sqlite-libs && \
tar \
wget && \
echo "**** compile mp3gain ****" && \ echo "**** compile mp3gain ****" && \
mkdir -p \ mkdir -p \
/tmp/mp3gain-src && \ /tmp/mp3gain-src && \
curl -o \ curl -o \
/tmp/mp3gain-src/mp3gain.zip -sL \ /tmp/mp3gain-src/mp3gain.zip -sL \
https://sourceforge.net/projects/mp3gain/files/mp3gain/1.6.1/mp3gain-1_6_1-src.zip && \ https://sourceforge.net/projects/mp3gain/files/mp3gain/1.6.2/mp3gain-1_6_2-src.zip && \
cd /tmp/mp3gain-src && \ cd /tmp/mp3gain-src && \
unzip -qq /tmp/mp3gain-src/mp3gain.zip && \ unzip -qq /tmp/mp3gain-src/mp3gain.zip && \
sed -i "s#/usr/local/bin#/usr/bin#g" /tmp/mp3gain-src/Makefile && \ sed -i "s#/usr/local/bin#/usr/bin#g" /tmp/mp3gain-src/Makefile && \
@ -69,39 +65,34 @@ RUN \
tar xzf /tmp/mp3val-src/mp3val.tar.gz --strip 1 && \ tar xzf /tmp/mp3val-src/mp3val.tar.gz --strip 1 && \
make -f Makefile.linux && \ make -f Makefile.linux && \
cp -p mp3val /usr/bin && \ cp -p mp3val /usr/bin && \
echo "**** compile chromaprint ****" && \
git clone https://bitbucket.org/acoustid/chromaprint.git \
/tmp/chromaprint && \
cd /tmp/chromaprint && \
cmake \
-DBUILD_TOOLS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX:PATH=/usr && \
make && \
make install && \
echo "**** install pip packages ****" && \ echo "**** install pip packages ****" && \
if [ -z ${BEETS_VERSION+x} ]; then \ if [ -z ${BEETS_VERSION+x} ]; then \
BEETS_VERSION=$(curl -sL https://pypi.python.org/pypi/beets/json \ BEETS_VERSION=$(curl -sL https://pypi.python.org/pypi/beets/json |jq -r '. | .info.version'); \
|jq -r '. | .info.version'); \
fi && \ fi && \
python3 -m pip install --upgrade pip && \ python3 -m ensurepip && \
pip3 install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine/ \ pip3 install -U --no-cache-dir \
wheel \ pip \
wheel && \
pip3 install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.17/ \
beautifulsoup4 \ beautifulsoup4 \
beets==${BEETS_VERSION} \ beets==${BEETS_VERSION} \
beets-extrafiles \ beets-extrafiles \
beetcamp \
discogs-client \ discogs-client \
flask \ flask \
PyGObject \
pillow \ pillow \
pyacoustid \ pyacoustid \
pylast \
requests \ requests \
unidecode && \ unidecode && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
apk del --purge \ apk del --purge \
build-dependencies && \ build-dependencies && \
rm -rf \ rm -rf \
/root/.cache \ /tmp/* \
/tmp/* $HOME/.cache \
$HOME/.cargo
# environment settings # environment settings
ENV BEETSDIR="/config" \ ENV BEETSDIR="/config" \

View file

@ -1,4 +1,6 @@
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.15 # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.17
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@ -10,21 +12,22 @@ LABEL maintainer="aptalca"
RUN \ RUN \
echo "**** install build packages ****" && \ echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies --upgrade \ apk add --no-cache --virtual=build-dependencies --upgrade \
build-base \
cairo-dev \
cargo \
cmake \ cmake \
ffmpeg-dev \ ffmpeg-dev \
fftw-dev \ fftw-dev \
g++ \
gcc \
git \ git \
gobject-introspection-dev \
jpeg-dev \ jpeg-dev \
libpng-dev \ libpng-dev \
make \
mpg123-dev \ mpg123-dev \
openjpeg-dev \ openjpeg-dev \
python3-dev && \ python3-dev && \
echo "**** install runtime packages ****" && \ echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \ apk add --no-cache --upgrade \
curl \ chromaprint \
expat \ expat \
ffmpeg \ ffmpeg \
ffmpeg-libs \ ffmpeg-libs \
@ -34,26 +37,20 @@ RUN \
gst-plugins-good \ gst-plugins-good \
gstreamer \ gstreamer \
jpeg \ jpeg \
jq \
lame \ lame \
libffi \ libffi \
libpng \ libpng \
mpg123 \ mpg123 \
nano \ nano \
openjpeg \ openjpeg \
py3-gobject3 \
py3-pip \
py3-pylast \
python3 \ python3 \
sqlite-libs \ sqlite-libs && \
tar \
wget && \
echo "**** compile mp3gain ****" && \ echo "**** compile mp3gain ****" && \
mkdir -p \ mkdir -p \
/tmp/mp3gain-src && \ /tmp/mp3gain-src && \
curl -o \ curl -o \
/tmp/mp3gain-src/mp3gain.zip -sL \ /tmp/mp3gain-src/mp3gain.zip -sL \
https://sourceforge.net/projects/mp3gain/files/mp3gain/1.6.1/mp3gain-1_6_1-src.zip && \ https://sourceforge.net/projects/mp3gain/files/mp3gain/1.6.2/mp3gain-1_6_2-src.zip && \
cd /tmp/mp3gain-src && \ cd /tmp/mp3gain-src && \
unzip -qq /tmp/mp3gain-src/mp3gain.zip && \ unzip -qq /tmp/mp3gain-src/mp3gain.zip && \
sed -i "s#/usr/local/bin#/usr/bin#g" /tmp/mp3gain-src/Makefile && \ sed -i "s#/usr/local/bin#/usr/bin#g" /tmp/mp3gain-src/Makefile && \
@ -69,39 +66,34 @@ RUN \
tar xzf /tmp/mp3val-src/mp3val.tar.gz --strip 1 && \ tar xzf /tmp/mp3val-src/mp3val.tar.gz --strip 1 && \
make -f Makefile.linux && \ make -f Makefile.linux && \
cp -p mp3val /usr/bin && \ cp -p mp3val /usr/bin && \
echo "**** compile chromaprint ****" && \
git clone https://bitbucket.org/acoustid/chromaprint.git \
/tmp/chromaprint && \
cd /tmp/chromaprint && \
cmake \
-DBUILD_TOOLS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX:PATH=/usr && \
make && \
make install && \
echo "**** install pip packages ****" && \ echo "**** install pip packages ****" && \
if [ -z ${BEETS_VERSION+x} ]; then \ if [ -z ${BEETS_VERSION+x} ]; then \
BEETS_VERSION=$(curl -sL https://pypi.python.org/pypi/beets/json \ BEETS_VERSION=$(curl -sL https://pypi.python.org/pypi/beets/json |jq -r '. | .info.version'); \
|jq -r '. | .info.version'); \
fi && \ fi && \
python3 -m pip install --upgrade pip && \ python3 -m ensurepip && \
pip3 install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine/ \ pip3 install -U --no-cache-dir \
wheel \ pip \
wheel && \
pip3 install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.17/ \
beautifulsoup4 \ beautifulsoup4 \
beets==${BEETS_VERSION} \ beets==${BEETS_VERSION} \
beets-extrafiles \ beets-extrafiles \
beetcamp \
discogs-client \ discogs-client \
flask \ flask \
PyGObject \
pillow \ pillow \
pyacoustid \ pyacoustid \
pylast \
requests \ requests \
unidecode && \ unidecode && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
apk del --purge \ apk del --purge \
build-dependencies && \ build-dependencies && \
rm -rf \ rm -rf \
/root/.cache \ /tmp/* \
/tmp/* $HOME/.cache \
$HOME/.cargo
# environment settings # environment settings
ENV BEETSDIR="/config" \ ENV BEETSDIR="/config" \

View file

@ -1,4 +1,6 @@
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.15 # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.17
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@ -10,21 +12,22 @@ LABEL maintainer="aptalca"
RUN \ RUN \
echo "**** install build packages ****" && \ echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies --upgrade \ apk add --no-cache --virtual=build-dependencies --upgrade \
build-base \
cairo-dev \
cargo \
cmake \ cmake \
ffmpeg-dev \ ffmpeg-dev \
fftw-dev \ fftw-dev \
g++ \
gcc \
git \ git \
gobject-introspection-dev \
jpeg-dev \ jpeg-dev \
libpng-dev \ libpng-dev \
make \
mpg123-dev \ mpg123-dev \
openjpeg-dev \ openjpeg-dev \
python3-dev && \ python3-dev && \
echo "**** install runtime packages ****" && \ echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \ apk add --no-cache --upgrade \
curl \ chromaprint \
expat \ expat \
ffmpeg \ ffmpeg \
ffmpeg-libs \ ffmpeg-libs \
@ -34,26 +37,20 @@ RUN \
gst-plugins-good \ gst-plugins-good \
gstreamer \ gstreamer \
jpeg \ jpeg \
jq \
lame \ lame \
libffi \ libffi \
libpng \ libpng \
mpg123 \ mpg123 \
nano \ nano \
openjpeg \ openjpeg \
py3-gobject3 \
py3-pip \
py3-pylast \
python3 \ python3 \
sqlite-libs \ sqlite-libs && \
tar \
wget && \
echo "**** compile mp3gain ****" && \ echo "**** compile mp3gain ****" && \
mkdir -p \ mkdir -p \
/tmp/mp3gain-src && \ /tmp/mp3gain-src && \
curl -o \ curl -o \
/tmp/mp3gain-src/mp3gain.zip -sL \ /tmp/mp3gain-src/mp3gain.zip -sL \
https://sourceforge.net/projects/mp3gain/files/mp3gain/1.6.1/mp3gain-1_6_1-src.zip && \ https://sourceforge.net/projects/mp3gain/files/mp3gain/1.6.2/mp3gain-1_6_2-src.zip && \
cd /tmp/mp3gain-src && \ cd /tmp/mp3gain-src && \
unzip -qq /tmp/mp3gain-src/mp3gain.zip && \ unzip -qq /tmp/mp3gain-src/mp3gain.zip && \
sed -i "s#/usr/local/bin#/usr/bin#g" /tmp/mp3gain-src/Makefile && \ sed -i "s#/usr/local/bin#/usr/bin#g" /tmp/mp3gain-src/Makefile && \
@ -69,39 +66,34 @@ RUN \
tar xzf /tmp/mp3val-src/mp3val.tar.gz --strip 1 && \ tar xzf /tmp/mp3val-src/mp3val.tar.gz --strip 1 && \
make -f Makefile.linux && \ make -f Makefile.linux && \
cp -p mp3val /usr/bin && \ cp -p mp3val /usr/bin && \
echo "**** compile chromaprint ****" && \
git clone https://bitbucket.org/acoustid/chromaprint.git \
/tmp/chromaprint && \
cd /tmp/chromaprint && \
cmake \
-DBUILD_TOOLS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX:PATH=/usr && \
make && \
make install && \
echo "**** install pip packages ****" && \ echo "**** install pip packages ****" && \
if [ -z ${BEETS_VERSION+x} ]; then \ if [ -z ${BEETS_VERSION+x} ]; then \
BEETS_VERSION=$(curl -sL https://pypi.python.org/pypi/beets/json \ BEETS_VERSION=$(curl -sL https://pypi.python.org/pypi/beets/json |jq -r '. | .info.version'); \
|jq -r '. | .info.version'); \
fi && \ fi && \
python3 -m pip install --upgrade pip && \ python3 -m ensurepip && \
pip3 install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine/ \ pip3 install -U --no-cache-dir \
wheel \ pip \
wheel && \
pip3 install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.17/ \
beautifulsoup4 \ beautifulsoup4 \
beets==${BEETS_VERSION} \ beets==${BEETS_VERSION} \
beets-extrafiles \ beets-extrafiles \
beetcamp \
discogs-client \ discogs-client \
flask \ flask \
PyGObject \
pillow \ pillow \
pyacoustid \ pyacoustid \
pylast \
requests \ requests \
unidecode && \ unidecode && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
apk del --purge \ apk del --purge \
build-dependencies && \ build-dependencies && \
rm -rf \ rm -rf \
/root/.cache \ /tmp/* \
/tmp/* $HOME/.cache \
$HOME/.cargo
# environment settings # environment settings
ENV BEETSDIR="/config" \ ENV BEETSDIR="/config" \

View file

@ -244,6 +244,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **24.02.23:** - Rebase to Alpine 3.17, migrate to s6v3, install chromaprint from Alpine repos, add beetcamp plugin.
* **15.01.22:** - Rebasing to alpine 3.15. * **15.01.22:** - Rebasing to alpine 3.15.
* **19.12.19:** - Rebasing to alpine 3.11. * **19.12.19:** - Rebasing to alpine 3.11.
* **28.06.19:** - Rebasing to alpine 3.10. * **28.06.19:** - Rebasing to alpine 3.10.

View file

@ -52,6 +52,7 @@ app_setup_block: |
# changelog # changelog
changelogs: changelogs:
- { date: "24.02.23:", desc: "Rebase to Alpine 3.17, migrate to s6v3, install chromaprint from Alpine repos, add beetcamp plugin." }
- { date: "15.01.22:", desc: "Rebasing to alpine 3.15." } - { date: "15.01.22:", desc: "Rebasing to alpine 3.15." }
- { date: "19.12.19:", desc: "Rebasing to alpine 3.11." } - { date: "19.12.19:", desc: "Rebasing to alpine 3.11." }
- { date: "28.06.19:", desc: "Rebasing to alpine 3.10." } - { date: "28.06.19:", desc: "Rebasing to alpine 3.10." }

View file

@ -1,4 +1,5 @@
#!/bin/bash #!/usr/bin/with-contenv bash
# shellcheck shell=bash
# #
# beets music tagger - post-processing script # beets music tagger - post-processing script
# #
@ -8,7 +9,7 @@
# $1 - Fullpath of directory to be processed. eg./mnt/user/downloads/some.artist_some.album # $1 - Fullpath of directory to be processed. eg./mnt/user/downloads/some.artist_some.album
# $7 - Status of post processing. 0 = OK, 1 = failed verification, 2 = failed unpack, 3 = 1+2 # $7 - Status of post processing. 0 = OK, 1 = failed verification, 2 = failed unpack, 3 = 1+2
if [ ! -z "$7" ] && [ "$7" -gt 0 ]; then if [ -n "$7" ] && [ "$7" -gt 0 ]; then
echo "post-processing failed, bypassing script" echo "post-processing failed, bypassing script"
exit 1 exit 1
fi fi
@ -16,7 +17,7 @@ fi
# process files # process files
echo "--------------------------" echo "--------------------------"
printf %b "$(date)\n" printf %b "$(date)\n"
echo "Starting beets.sh for $(basename $1)" echo "Starting beets.sh for $(basename "$1")"
BEETSDIR=/config BEETSDIR=/config
export BEETSDIR export BEETSDIR

View file

@ -1,11 +0,0 @@
#!/usr/bin/with-contenv bash
# copy config
[[ ! -e /config/beets.sh ]] && \
cp /defaults/beets.sh /config/beets.sh
[[ ! -e /config/config.yaml ]] && \
cp /defaults/config.yaml /config/config.yaml
# permissions
chown -R abc:abc \
/config

View file

@ -0,0 +1,10 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# copy config
cp -n /defaults/beets.sh /config/beets.sh
cp -n /defaults/config.yaml /config/config.yaml
# permissions
lsiown -R abc:abc \
/config

View file

@ -0,0 +1 @@
oneshot

View file

@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-beets-config/run

View file

@ -0,0 +1 @@
3

View file

@ -0,0 +1,6 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8337" \
s6-setuidgid abc beet web

View file

@ -0,0 +1 @@
longrun

View file

@ -1,5 +0,0 @@
#!/usr/bin/with-contenv bash
umask 022
exec \
s6-setuidgid abc beet web