diff --git a/Dockerfile b/Dockerfile index 3d62d43..2d021a2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,195 @@ -FROM lsiobase/alpine:3.8 +ARG ALPINE_VER="3.9" +FROM lsiobase/alpine:${ALPINE_VER} as fetch-stage + +############## fetch stage ############## + +# package versions +ARG MP3GAIN_VER="1.6.2" + +# install fetch packages +RUN \ + apk add --no-cache \ + bash \ + curl \ + git \ + jq \ + unzip + +# set shell +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# fetch source code +RUN \ + set -ex && \ + mkdir -p \ + /tmp/beets-src \ + /tmp/mp3gain-src && \ + if [ -z ${BEETS_VERSION+x} ] ; then \ + BEETS_RAW_COMMIT=$(curl -sX GET "https://api.github.com/repos/beetbox/beets/commits/master" \ + | jq -r .sha) && \ + BEETS_VERSION="${BEETS_RAW_COMMIT:0:7}"; \ + fi && \ + curl -o \ + /tmp/beets.tar.gz -L \ + "https://github.com/sampsyo/beets/archive/${BEETS_VERSION}.tar.gz" && \ + curl -o \ + /tmp/mp3gain.zip -L \ + "https://sourceforge.net/projects/mp3gain/files/mp3gain/${MP3GAIN_VER}/mp3gain-${MP3GAIN_VER//./_}-src.zip" && \ + tar xf \ + /tmp/beets.tar.gz -C \ + /tmp/beets-src --strip-components=1 && \ + unzip -q /tmp/mp3gain.zip -d /tmp/mp3gain-src && \ + git clone https://bitbucket.org/acoustid/chromaprint.git /tmp/chromaprint-src && \ + git clone https://github.com/sbarakat/beets-copyartifacts.git /tmp/copyartifacts-src + +FROM lsiobase/alpine:${ALPINE_VER} as beets_build-stage + +############## beets build stage ############## + +# copy artifacts from fetch stage +COPY --from=fetch-stage /tmp/beets-src /tmp/beets-src +COPY --from=fetch-stage /tmp/copyartifacts-src /tmp/copyartifacts-src + +# set workdir for beets install +WORKDIR /tmp/beets-src + +# install build packages +RUN \ + apk add --no-cache \ + py3-setuptools \ + python3-dev + +# build beets package +RUN \ + set -ex && \ + python3 setup.py build && \ + python3 setup.py install --prefix=/usr --root=/build/beets + +# set workdir for copyartifacts install +WORKDIR /tmp/copyartifacts-src + +# build copyartifacts package +RUN \ + set -ex && \ + python3 setup.py install --prefix=/usr --root=/build/beets + +FROM alpine:${ALPINE_VER} as mp3gain_build-stage + +############## mp3gain build stage ############## + +# copy artifacts from fetch stage +COPY --from=fetch-stage /tmp/mp3gain-src /tmp/mp3gain-src + +# set workdir +WORKDIR /tmp/mp3gain-src + +# install build packages +RUN \ + apk add --no-cache \ + g++ \ + make \ + mpg123-dev + +# build package +RUN \ + set -ex && \ + mkdir -p \ + /build/mp3gain/usr/bin && \ + sed -i "s#/usr/local/bin#/build/mp3gain/usr/bin#g" Makefile && \ + make && \ + make install + +FROM lsiobase/alpine:${ALPINE_VER} as chromaprint_build-stage + +############## chromaprint build stage ############## + +# copy artifacts from fetch stage +COPY --from=fetch-stage /tmp/chromaprint-src /tmp/chromaprint-src + +# set workdir +WORKDIR /tmp/chromaprint-src + +# install build packages +RUN \ + apk add --no-cache \ + cmake \ + ffmpeg-dev \ + fftw-dev \ + g++ \ + make + +# build package +RUN \ + set -ex && \ + cmake \ + -DBUILD_TOOLS=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX:PATH=/usr && \ + make && \ + make DESTDIR=/build/chromaprint install + +FROM lsiobase/alpine:${ALPINE_VER} as pip-stage + +############## pip packages install stage ############## + +# install build packages +RUN \ + apk add --no-cache \ + g++ \ + make \ + py3-pip \ + python3-dev + +# install pip packages +RUN \ + set -ex && \ + pip3 install --no-cache-dir -U \ + discogs-client \ + mutagen \ + pyacoustid \ + pyyaml \ + unidecode + +FROM lsiobase/alpine:${ALPINE_VER} as strip-stage + +############## strip packages stage ############## + +# copy artifacts build stages +COPY --from=beets_build-stage /build/beets/usr/ /build/all//usr/ +COPY --from=chromaprint_build-stage /build/chromaprint/usr/ /build/all//usr/ +COPY --from=mp3gain_build-stage /build/mp3gain/usr/ /build/all//usr/ +COPY --from=pip-stage /usr/lib/python3.6/site-packages /build/all/usr/lib/python3.6/site-packages + +# install strip packages +RUN \ + apk add --no-cache \ + bash \ + binutils + +# set shell +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# strip packages +RUN \ + set -ex && \ + for dirs in usr/bin usr/lib usr/lib/python3.6/site-packages; \ + do \ + find /build/all/"${dirs}" -type f | \ + while read -r files ; do strip "${files}" || true \ + ; done \ + ; done + +# remove unneeded files +RUN \ + set -ex && \ + for cleanfiles in *.la *.pyc *.pyo; \ + do \ + find /build/all/ -iname "${cleanfiles}" -exec rm -vf '{}' + \ + ; done + +FROM lsiobase/alpine:${ALPINE_VER} + +############## runtime stage ############## # set version label ARG BUILD_DATE @@ -7,89 +198,36 @@ ARG BEETS_VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="sparklyballs" +# copy artifacts strip stage +COPY --from=strip-stage /build/all/usr/ /usr/ + +# install runtime packages RUN \ - echo "**** install build packages ****" && \ - apk add --no-cache --virtual=build-dependencies --upgrade \ - cmake \ - ffmpeg-dev \ - fftw-dev \ - g++ \ - gcc \ - git \ - jpeg-dev \ - libpng-dev \ - make \ - mpg123-dev \ - openjpeg-dev \ - python3-dev && \ - echo "**** install runtime packages ****" && \ - apk add --no-cache --upgrade \ + apk add --no-cache \ curl \ - expat \ ffmpeg \ - ffmpeg-libs \ fftw \ - gdbm \ - gst-plugins-good \ - gstreamer \ - jpeg \ - jq \ - lame \ - libffi \ - libpng \ mpg123 \ nano \ - openjpeg \ - py3-gobject3 \ + jq \ + lame \ + nano \ + py3-beautifulsoup4 \ + py3-flask \ + py3-jellyfish \ + py3-munkres \ + py3-musicbrainzngs \ + py3-pillow \ py3-pip \ py3-pylast \ + py3-requests \ + py3-setuptools \ + py3-six \ + py-enum34 \ python3 \ sqlite-libs \ tar \ - wget && \ - echo "**** compile mp3gain ****" && \ - mkdir -p \ - /tmp/mp3gain-src && \ - curl -o \ - /tmp/mp3gain-src/mp3gain.zip -L \ - https://sourceforge.net/projects/mp3gain/files/mp3gain/1.6.1/mp3gain-1_6_1-src.zip && \ - cd /tmp/mp3gain-src && \ - unzip -qq /tmp/mp3gain-src/mp3gain.zip && \ - sed -i "s#/usr/local/bin#/usr/bin#g" /tmp/mp3gain-src/Makefile && \ - make && \ - make install && \ - 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 ****" && \ - if [ -z ${BEETS_VERSION+x} ]; then \ - BEETS_VERSION=$(curl -sL https://pypi.python.org/pypi/beets/json \ - |jq -r '. | .info.version'); \ - fi && \ - pip3 install --no-cache-dir -U \ - beautifulsoup4 \ - beets==${BEETS_VERSION} \ - beets-copyartifacts \ - discogs-client \ - flask \ - pillow \ - pip \ - pyacoustid \ - requests \ - unidecode && \ - echo "**** cleanup ****" && \ - apk del --purge \ - build-dependencies && \ - rm -rf \ - /root/.cache \ - /tmp/* + wget # environment settings ENV BEETSDIR="/config" \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index dee6b17..70a36ca 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,7 +1,195 @@ -FROM lsiobase/alpine.arm64:3.8 +ARG ALPINE_VER="3.9" +FROM lsiobase/alpine.arm64:${ALPINE_VER} as fetch-stage -# Add qemu to build on x86_64 systems -COPY qemu-aarch64-static /usr/bin +############## fetch stage ############## + +# package versions +ARG MP3GAIN_VER="1.6.2" + +# install fetch packages +RUN \ + apk add --no-cache \ + bash \ + curl \ + git \ + jq \ + unzip + +# set shell +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# fetch source code +RUN \ + set -ex && \ + mkdir -p \ + /tmp/beets-src \ + /tmp/mp3gain-src && \ + if [ -z ${BEETS_VERSION+x} ] ; then \ + BEETS_RAW_COMMIT=$(curl -sX GET "https://api.github.com/repos/beetbox/beets/commits/master" \ + | jq -r .sha) && \ + BEETS_VERSION="${BEETS_RAW_COMMIT:0:7}"; \ + fi && \ + curl -o \ + /tmp/beets.tar.gz -L \ + "https://github.com/sampsyo/beets/archive/${BEETS_VERSION}.tar.gz" && \ + curl -o \ + /tmp/mp3gain.zip -L \ + "https://sourceforge.net/projects/mp3gain/files/mp3gain/${MP3GAIN_VER}/mp3gain-${MP3GAIN_VER//./_}-src.zip" && \ + tar xf \ + /tmp/beets.tar.gz -C \ + /tmp/beets-src --strip-components=1 && \ + unzip -q /tmp/mp3gain.zip -d /tmp/mp3gain-src && \ + git clone https://bitbucket.org/acoustid/chromaprint.git /tmp/chromaprint-src && \ + git clone https://github.com/sbarakat/beets-copyartifacts.git /tmp/copyartifacts-src + +FROM lsiobase/alpine.arm64:${ALPINE_VER} as beets_build-stage + +############## beets build stage ############## + +# copy artifacts from fetch stage +COPY --from=fetch-stage /tmp/beets-src /tmp/beets-src +COPY --from=fetch-stage /tmp/copyartifacts-src /tmp/copyartifacts-src + +# set workdir for beets install +WORKDIR /tmp/beets-src + +# install build packages +RUN \ + apk add --no-cache \ + py3-setuptools \ + python3-dev + +# build beets package +RUN \ + set -ex && \ + python3 setup.py build && \ + python3 setup.py install --prefix=/usr --root=/build/beets + +# set workdir for copyartifacts install +WORKDIR /tmp/copyartifacts-src + +# build copyartifacts package +RUN \ + set -ex && \ + python3 setup.py install --prefix=/usr --root=/build/beets + +FROM alpine:${ALPINE_VER} as mp3gain_build-stage + +############## mp3gain build stage ############## + +# copy artifacts from fetch stage +COPY --from=fetch-stage /tmp/mp3gain-src /tmp/mp3gain-src + +# set workdir +WORKDIR /tmp/mp3gain-src + +# install build packages +RUN \ + apk add --no-cache \ + g++ \ + make \ + mpg123-dev + +# build package +RUN \ + set -ex && \ + mkdir -p \ + /build/mp3gain/usr/bin && \ + sed -i "s#/usr/local/bin#/build/mp3gain/usr/bin#g" Makefile && \ + make && \ + make install + +FROM lsiobase/alpine.arm64:${ALPINE_VER} as chromaprint_build-stage + +############## chromaprint build stage ############## + +# copy artifacts from fetch stage +COPY --from=fetch-stage /tmp/chromaprint-src /tmp/chromaprint-src + +# set workdir +WORKDIR /tmp/chromaprint-src + +# install build packages +RUN \ + apk add --no-cache \ + cmake \ + ffmpeg-dev \ + fftw-dev \ + g++ \ + make + +# build package +RUN \ + set -ex && \ + cmake \ + -DBUILD_TOOLS=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX:PATH=/usr && \ + make && \ + make DESTDIR=/build/chromaprint install + +FROM lsiobase/alpine.arm64:${ALPINE_VER} as pip-stage + +############## pip packages install stage ############## + +# install build packages +RUN \ + apk add --no-cache \ + g++ \ + make \ + py3-pip \ + python3-dev + +# install pip packages +RUN \ + set -ex && \ + pip3 install --no-cache-dir -U \ + discogs-client \ + mutagen \ + pyacoustid \ + pyyaml \ + unidecode + +FROM lsiobase/alpine.arm64:${ALPINE_VER} as strip-stage + +############## strip packages stage ############## + +# copy artifacts build stages +COPY --from=beets_build-stage /build/beets/usr/ /build/all//usr/ +COPY --from=chromaprint_build-stage /build/chromaprint/usr/ /build/all//usr/ +COPY --from=mp3gain_build-stage /build/mp3gain/usr/ /build/all//usr/ +COPY --from=pip-stage /usr/lib/python3.6/site-packages /build/all/usr/lib/python3.6/site-packages + +# install strip packages +RUN \ + apk add --no-cache \ + bash \ + binutils + +# set shell +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# strip packages +RUN \ + set -ex && \ + for dirs in usr/bin usr/lib usr/lib/python3.6/site-packages; \ + do \ + find /build/all/"${dirs}" -type f | \ + while read -r files ; do strip "${files}" || true \ + ; done \ + ; done + +# remove unneeded files +RUN \ + set -ex && \ + for cleanfiles in *.la *.pyc *.pyo; \ + do \ + find /build/all/ -iname "${cleanfiles}" -exec rm -vf '{}' + \ + ; done + +FROM lsiobase/alpine.arm64:${ALPINE_VER} + +############## runtime stage ############## # set version label ARG BUILD_DATE @@ -10,89 +198,36 @@ ARG BEETS_VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="sparklyballs" +# copy artifacts strip stage +COPY --from=strip-stage /build/all/usr/ /usr/ + +# install runtime packages RUN \ - echo "**** install build packages ****" && \ - apk add --no-cache --virtual=build-dependencies --upgrade \ - cmake \ - ffmpeg-dev \ - fftw-dev \ - g++ \ - gcc \ - git \ - jpeg-dev \ - libpng-dev \ - make \ - mpg123-dev \ - openjpeg-dev \ - python3-dev && \ - echo "**** install runtime packages ****" && \ - apk add --no-cache --upgrade \ + apk add --no-cache \ curl \ - expat \ ffmpeg \ - ffmpeg-libs \ fftw \ - gdbm \ - gst-plugins-good \ - gstreamer \ - jpeg \ - jq \ - lame \ - libffi \ - libpng \ mpg123 \ nano \ - openjpeg \ - py3-gobject3 \ + jq \ + lame \ + nano \ + py3-beautifulsoup4 \ + py3-flask \ + py3-jellyfish \ + py3-munkres \ + py3-musicbrainzngs \ + py3-pillow \ py3-pip \ py3-pylast \ + py3-requests \ + py3-setuptools \ + py3-six \ + py-enum34 \ python3 \ sqlite-libs \ tar \ - wget && \ - echo "**** compile mp3gain ****" && \ - mkdir -p \ - /tmp/mp3gain-src && \ - curl -o \ - /tmp/mp3gain-src/mp3gain.zip -L \ - https://sourceforge.net/projects/mp3gain/files/mp3gain/1.6.1/mp3gain-1_6_1-src.zip && \ - cd /tmp/mp3gain-src && \ - unzip -qq /tmp/mp3gain-src/mp3gain.zip && \ - sed -i "s#/usr/local/bin#/usr/bin#g" /tmp/mp3gain-src/Makefile && \ - make && \ - make install && \ - 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 ****" && \ - if [ -z ${BEETS_VERSION+x} ]; then \ - BEETS_VERSION=$(curl -sL https://pypi.python.org/pypi/beets/json \ - |jq -r '. | .info.version'); \ - fi && \ - pip3 install --no-cache-dir -U \ - beautifulsoup4 \ - beets==${BEETS_VERSION} \ - beets-copyartifacts \ - discogs-client \ - flask \ - pillow \ - pip \ - pyacoustid \ - requests \ - unidecode && \ - echo "**** cleanup ****" && \ - apk del --purge \ - build-dependencies && \ - rm -rf \ - /root/.cache \ - /tmp/* + wget # environment settings ENV BEETSDIR="/config" \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 6783fec..0bfc8ba 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,7 +1,195 @@ -FROM lsiobase/alpine.armhf:3.8 +ARG ALPINE_VER="3.9" +FROM lsiobase/alpine.armhf:${ALPINE_VER} as fetch-stage -# Add qemu to build on x86_64 systems -COPY qemu-arm-static /usr/bin +############## fetch stage ############## + +# package versions +ARG MP3GAIN_VER="1.6.2" + +# install fetch packages +RUN \ + apk add --no-cache \ + bash \ + curl \ + git \ + jq \ + unzip + +# set shell +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# fetch source code +RUN \ + set -ex && \ + mkdir -p \ + /tmp/beets-src \ + /tmp/mp3gain-src && \ + if [ -z ${BEETS_VERSION+x} ] ; then \ + BEETS_RAW_COMMIT=$(curl -sX GET "https://api.github.com/repos/beetbox/beets/commits/master" \ + | jq -r .sha) && \ + BEETS_VERSION="${BEETS_RAW_COMMIT:0:7}"; \ + fi && \ + curl -o \ + /tmp/beets.tar.gz -L \ + "https://github.com/sampsyo/beets/archive/${BEETS_VERSION}.tar.gz" && \ + curl -o \ + /tmp/mp3gain.zip -L \ + "https://sourceforge.net/projects/mp3gain/files/mp3gain/${MP3GAIN_VER}/mp3gain-${MP3GAIN_VER//./_}-src.zip" && \ + tar xf \ + /tmp/beets.tar.gz -C \ + /tmp/beets-src --strip-components=1 && \ + unzip -q /tmp/mp3gain.zip -d /tmp/mp3gain-src && \ + git clone https://bitbucket.org/acoustid/chromaprint.git /tmp/chromaprint-src && \ + git clone https://github.com/sbarakat/beets-copyartifacts.git /tmp/copyartifacts-src + +FROM lsiobase/alpine.armhf:${ALPINE_VER} as beets_build-stage + +############## beets build stage ############## + +# copy artifacts from fetch stage +COPY --from=fetch-stage /tmp/beets-src /tmp/beets-src +COPY --from=fetch-stage /tmp/copyartifacts-src /tmp/copyartifacts-src + +# set workdir for beets install +WORKDIR /tmp/beets-src + +# install build packages +RUN \ + apk add --no-cache \ + py3-setuptools \ + python3-dev + +# build beets package +RUN \ + set -ex && \ + python3 setup.py build && \ + python3 setup.py install --prefix=/usr --root=/build/beets + +# set workdir for copyartifacts install +WORKDIR /tmp/copyartifacts-src + +# build copyartifacts package +RUN \ + set -ex && \ + python3 setup.py install --prefix=/usr --root=/build/beets + +FROM alpine:${ALPINE_VER} as mp3gain_build-stage + +############## mp3gain build stage ############## + +# copy artifacts from fetch stage +COPY --from=fetch-stage /tmp/mp3gain-src /tmp/mp3gain-src + +# set workdir +WORKDIR /tmp/mp3gain-src + +# install build packages +RUN \ + apk add --no-cache \ + g++ \ + make \ + mpg123-dev + +# build package +RUN \ + set -ex && \ + mkdir -p \ + /build/mp3gain/usr/bin && \ + sed -i "s#/usr/local/bin#/build/mp3gain/usr/bin#g" Makefile && \ + make && \ + make install + +FROM lsiobase/alpine.armhf:${ALPINE_VER} as chromaprint_build-stage + +############## chromaprint build stage ############## + +# copy artifacts from fetch stage +COPY --from=fetch-stage /tmp/chromaprint-src /tmp/chromaprint-src + +# set workdir +WORKDIR /tmp/chromaprint-src + +# install build packages +RUN \ + apk add --no-cache \ + cmake \ + ffmpeg-dev \ + fftw-dev \ + g++ \ + make + +# build package +RUN \ + set -ex && \ + cmake \ + -DBUILD_TOOLS=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX:PATH=/usr && \ + make && \ + make DESTDIR=/build/chromaprint install + +FROM lsiobase/alpine.armhf:${ALPINE_VER} as pip-stage + +############## pip packages install stage ############## + +# install build packages +RUN \ + apk add --no-cache \ + g++ \ + make \ + py3-pip \ + python3-dev + +# install pip packages +RUN \ + set -ex && \ + pip3 install --no-cache-dir -U \ + discogs-client \ + mutagen \ + pyacoustid \ + pyyaml \ + unidecode + +FROM lsiobase/alpine.armhf:${ALPINE_VER} as strip-stage + +############## strip packages stage ############## + +# copy artifacts build stages +COPY --from=beets_build-stage /build/beets/usr/ /build/all//usr/ +COPY --from=chromaprint_build-stage /build/chromaprint/usr/ /build/all//usr/ +COPY --from=mp3gain_build-stage /build/mp3gain/usr/ /build/all//usr/ +COPY --from=pip-stage /usr/lib/python3.6/site-packages /build/all/usr/lib/python3.6/site-packages + +# install strip packages +RUN \ + apk add --no-cache \ + bash \ + binutils + +# set shell +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# strip packages +RUN \ + set -ex && \ + for dirs in usr/bin usr/lib usr/lib/python3.6/site-packages; \ + do \ + find /build/all/"${dirs}" -type f | \ + while read -r files ; do strip "${files}" || true \ + ; done \ + ; done + +# remove unneeded files +RUN \ + set -ex && \ + for cleanfiles in *.la *.pyc *.pyo; \ + do \ + find /build/all/ -iname "${cleanfiles}" -exec rm -vf '{}' + \ + ; done + +FROM lsiobase/alpine.armhf:${ALPINE_VER} + +############## runtime stage ############## # set version label ARG BUILD_DATE @@ -10,89 +198,36 @@ ARG BEETS_VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="sparklyballs" +# copy artifacts strip stage +COPY --from=strip-stage /build/all/usr/ /usr/ + +# install runtime packages RUN \ - echo "**** install build packages ****" && \ - apk add --no-cache --virtual=build-dependencies --upgrade \ - cmake \ - ffmpeg-dev \ - fftw-dev \ - g++ \ - gcc \ - git \ - jpeg-dev \ - libpng-dev \ - make \ - mpg123-dev \ - openjpeg-dev \ - python3-dev && \ - echo "**** install runtime packages ****" && \ - apk add --no-cache --upgrade \ + apk add --no-cache \ curl \ - expat \ ffmpeg \ - ffmpeg-libs \ fftw \ - gdbm \ - gst-plugins-good \ - gstreamer \ - jpeg \ - jq \ - lame \ - libffi \ - libpng \ mpg123 \ nano \ - openjpeg \ - py3-gobject3 \ + jq \ + lame \ + nano \ + py3-beautifulsoup4 \ + py3-flask \ + py3-jellyfish \ + py3-munkres \ + py3-musicbrainzngs \ + py3-pillow \ py3-pip \ py3-pylast \ + py3-requests \ + py3-setuptools \ + py3-six \ + py-enum34 \ python3 \ sqlite-libs \ tar \ - wget && \ - echo "**** compile mp3gain ****" && \ - mkdir -p \ - /tmp/mp3gain-src && \ - curl -o \ - /tmp/mp3gain-src/mp3gain.zip -L \ - https://sourceforge.net/projects/mp3gain/files/mp3gain/1.6.1/mp3gain-1_6_1-src.zip && \ - cd /tmp/mp3gain-src && \ - unzip -qq /tmp/mp3gain-src/mp3gain.zip && \ - sed -i "s#/usr/local/bin#/usr/bin#g" /tmp/mp3gain-src/Makefile && \ - make && \ - make install && \ - 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 ****" && \ - if [ -z ${BEETS_VERSION+x} ]; then \ - BEETS_VERSION=$(curl -sL https://pypi.python.org/pypi/beets/json \ - |jq -r '. | .info.version'); \ - fi && \ - pip3 install --no-cache-dir -U \ - beautifulsoup4 \ - beets==${BEETS_VERSION} \ - beets-copyartifacts \ - discogs-client \ - flask \ - pillow \ - pip \ - pyacoustid \ - requests \ - unidecode && \ - echo "**** cleanup ****" && \ - apk del --purge \ - build-dependencies && \ - rm -rf \ - /root/.cache \ - /tmp/* + wget # environment settings ENV BEETSDIR="/config" \ diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 0e9b85d..ba6e20f 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -2,13 +2,15 @@ # jenkins variables project_name: docker-beets -external_type: pip_version -release_type: stable -release_tag: latest -ls_branch: master +external_type: github_commit +release_type: prerelease +release_tag: nightly +ls_branch: nightly repo_vars: - BUILD_VERSION_ARG = 'BEETS_VERSION' - - EXT_PIP='beets' + - EXT_GIT_BRANCH = 'master' + - EXT_USER = 'beetbox' + - EXT_REPO = 'beets' - LS_USER = 'linuxserver' - LS_REPO = 'docker-beets' - CONTAINER_NAME = 'beets' @@ -16,7 +18,7 @@ repo_vars: - DEV_DOCKERHUB_IMAGE = 'lsiodev/beets' - PR_DOCKERHUB_IMAGE = 'lspipepr/beets' - DIST_IMAGE = 'alpine' - - MULTIARCH='true' + - MULTIARCH='false' - CI='true' - CI_WEB='true' - CI_PORT='8337'