From c332b3f751bef10d6da3caa0ea40190203c5650d Mon Sep 17 00:00:00 2001 From: root Date: Tue, 12 Apr 2016 15:33:34 +0000 Subject: [PATCH 01/12] Upgraded to 6.1.8190 --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8bee140..a32d924 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,9 +11,9 @@ RUN apk --update upgrade \ # Set Madsonic Package Information ENV PKG_NAME madsonic -ENV PKG_VER 6.1.8120 +ENV PKG_VER 6.1.8190 ENV PKG_VERA 6.1 -ENV PKG_DATE 20160304 +ENV PKG_DATE 20160406 ENV APP_BASEURL http://www.madsonic.org/download ENV APP_PKGNAME ${PKG_DATE}_${PKG_NAME}-${PKG_VER}-standalone.zip ENV TRAN_PKGNAME ${PKG_DATE}_${PKG_NAME}-transcode-linux-x64.zip From fd0c2e5019e2c81b463c7594f6082a72515fe706 Mon Sep 17 00:00:00 2001 From: Steve Hibit Date: Tue, 12 Apr 2016 16:23:23 +0000 Subject: [PATCH 02/12] Made transcoders executable --- madsonic.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/madsonic.sh b/madsonic.sh index d75c24e..fd992fb 100644 --- a/madsonic.sh +++ b/madsonic.sh @@ -10,6 +10,7 @@ mkdir -p /config/transcode #copy transcode to config directory - transcode directory is subdir of path set from --home flag, do not alter cp /var/madsonic/transcode/transcode/* /config/transcode/ +chmod +x /config/transcode/* # Force Madsonic to run in foreground sed -i 's/-jar madsonic-booter.jar > \${LOG} 2>\&1 \&/-jar madsonic-booter.jar > \${LOG} 2>\&1/g' /var/madsonic/madsonic.sh From 86c7150ff6282aa3e4a87c271761e4e85e4da9f4 Mon Sep 17 00:00:00 2001 From: Steve Hibit Date: Thu, 30 Jun 2016 14:44:41 +0000 Subject: [PATCH 03/12] Upgraded to 6.1.8280 --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index a32d924..09015e5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,9 +11,9 @@ RUN apk --update upgrade \ # Set Madsonic Package Information ENV PKG_NAME madsonic -ENV PKG_VER 6.1.8190 +ENV PKG_VER 6.1.8280 ENV PKG_VERA 6.1 -ENV PKG_DATE 20160406 +ENV PKG_DATE 20160505 ENV APP_BASEURL http://www.madsonic.org/download ENV APP_PKGNAME ${PKG_DATE}_${PKG_NAME}-${PKG_VER}-standalone.zip ENV TRAN_PKGNAME ${PKG_DATE}_${PKG_NAME}-transcode-linux-x64.zip From 3029283faaa6316f0960a3dfcb0f8b97a4d41dc8 Mon Sep 17 00:00:00 2001 From: Steve Hibit Date: Wed, 3 Aug 2016 00:50:50 +0000 Subject: [PATCH 04/12] Switched to runit --- Dockerfile | 11 ++++------- madsonic.sh | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 09015e5..25742a6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.3 +FROM sdhibit/alpine-runit:3.4 MAINTAINER Steve Hibit # Install apk packages @@ -44,11 +44,8 @@ VOLUME ["/config"] EXPOSE 4040 EXPOSE 4050 -# Add run script -ADD madsonic.sh /madsonic.sh -RUN chmod +x /madsonic.sh - -USER madsonic WORKDIR /var/madsonic -CMD ["/madsonic.sh"] +# Add services to runit +ADD madsonic.sh /etc/service/madsonic/run +RUN chmod +x /etc/service/*/run diff --git a/madsonic.sh b/madsonic.sh index fd992fb..10e1d6d 100644 --- a/madsonic.sh +++ b/madsonic.sh @@ -25,7 +25,7 @@ else PORTS="--port=4040" fi -/var/madsonic/madsonic.sh \ +/sbin/su-exec madsonic /var/madsonic/madsonic.sh \ --home=/config \ --context-path=$CONTEXT \ --default-music-folder=/media \ From c3be43493c3e9b22c66f026f39ec9c1f559f1296 Mon Sep 17 00:00:00 2001 From: Steve Hibit Date: Wed, 3 Aug 2016 02:01:21 +0000 Subject: [PATCH 05/12] New beta 6.1 version --- Dockerfile | 4 ++-- madsonic.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 25742a6..552ba2f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,9 +11,9 @@ RUN apk --update upgrade \ # Set Madsonic Package Information ENV PKG_NAME madsonic -ENV PKG_VER 6.1.8280 +ENV PKG_VER 6.1.8550 ENV PKG_VERA 6.1 -ENV PKG_DATE 20160505 +ENV PKG_DATE 20160727 ENV APP_BASEURL http://www.madsonic.org/download ENV APP_PKGNAME ${PKG_DATE}_${PKG_NAME}-${PKG_VER}-standalone.zip ENV TRAN_PKGNAME ${PKG_DATE}_${PKG_NAME}-transcode-linux-x64.zip diff --git a/madsonic.sh b/madsonic.sh index 10e1d6d..362ee6a 100644 --- a/madsonic.sh +++ b/madsonic.sh @@ -13,7 +13,7 @@ cp /var/madsonic/transcode/transcode/* /config/transcode/ chmod +x /config/transcode/* # Force Madsonic to run in foreground -sed -i 's/-jar madsonic-booter.jar > \${LOG} 2>\&1 \&/-jar madsonic-booter.jar > \${LOG} 2>\&1/g' /var/madsonic/madsonic.sh +sed -i 's/-jar madsonic-booter.jar > \${LOG} 2>\&1 \&/-jar madsonic-booter.jar/g' /var/madsonic/madsonic.sh if [ -z "$CONTEXT" ]; then CONTEXT=/ From 3b052cce67c39611ceddd9d10ed30c00f89baf9d Mon Sep 17 00:00:00 2001 From: Steve Hibit Date: Wed, 26 Oct 2016 17:46:48 +0000 Subject: [PATCH 06/12] Upgraded to 6.1.8700 --- Dockerfile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 552ba2f..6c33c5b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,21 @@ FROM sdhibit/alpine-runit:3.4 MAINTAINER Steve Hibit +RUN addgroup -S madsonic \ + && adduser -SHG madsonic madsonic + # Install apk packages RUN apk --update upgrade \ - && apk add \ + && apk --no-cache add \ openjdk8-jre-base \ unzip \ - wget \ - && rm /var/cache/apk/* + wget # Set Madsonic Package Information ENV PKG_NAME madsonic -ENV PKG_VER 6.1.8550 +ENV PKG_VER 6.1.8700 ENV PKG_VERA 6.1 -ENV PKG_DATE 20160727 +ENV PKG_DATE 20161001 ENV APP_BASEURL http://www.madsonic.org/download ENV APP_PKGNAME ${PKG_DATE}_${PKG_NAME}-${PKG_VER}-standalone.zip ENV TRAN_PKGNAME ${PKG_DATE}_${PKG_NAME}-transcode-linux-x64.zip @@ -30,10 +32,8 @@ RUN mkdir -p "${APP_PATH}/transcode" \ && rm "${APP_PATH}/madsonic.zip" \ && rm "${APP_PATH}/transcode/transcode.zip" -# Create user and change ownership +# Change ownership RUN mkdir /config \ - && addgroup -g 666 -S madsonic \ - && adduser -u 666 -SHG madsonic madsonic \ && chown -R madsonic:madsonic \ ${APP_PATH} \ "/config" From f1d20356773209a05b98f42c8d73cbe3e8710223 Mon Sep 17 00:00:00 2001 From: Steve Hibit Date: Wed, 26 Oct 2016 18:00:59 +0000 Subject: [PATCH 07/12] changed download date for version 8700 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6c33c5b..d2231c4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,7 +15,7 @@ RUN apk --update upgrade \ ENV PKG_NAME madsonic ENV PKG_VER 6.1.8700 ENV PKG_VERA 6.1 -ENV PKG_DATE 20161001 +ENV PKG_DATE 20160915 ENV APP_BASEURL http://www.madsonic.org/download ENV APP_PKGNAME ${PKG_DATE}_${PKG_NAME}-${PKG_VER}-standalone.zip ENV TRAN_PKGNAME ${PKG_DATE}_${PKG_NAME}-transcode-linux-x64.zip From 60bc5b5f217860f5cd8536f8605a220fad6d1a2d Mon Sep 17 00:00:00 2001 From: Steve Hibit Date: Tue, 25 Apr 2017 23:25:30 +0000 Subject: [PATCH 08/12] Upgraded to 6.2.9080 --- Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index d2231c4..f651302 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM sdhibit/alpine-runit:3.4 +FROM sdhibit/alpine-runit:3.5 MAINTAINER Steve Hibit RUN addgroup -S madsonic \ @@ -13,9 +13,9 @@ RUN apk --update upgrade \ # Set Madsonic Package Information ENV PKG_NAME madsonic -ENV PKG_VER 6.1.8700 -ENV PKG_VERA 6.1 -ENV PKG_DATE 20160915 +ENV PKG_VER 6.2.9080 +ENV PKG_VERA 6.2 +ENV PKG_DATE 20161222 ENV APP_BASEURL http://www.madsonic.org/download ENV APP_PKGNAME ${PKG_DATE}_${PKG_NAME}-${PKG_VER}-standalone.zip ENV TRAN_PKGNAME ${PKG_DATE}_${PKG_NAME}-transcode-linux-x64.zip From a9bf4d5639a5b7d56b791d61bfcff9de9fbdba31 Mon Sep 17 00:00:00 2001 From: Steve Hibit Date: Tue, 27 Jun 2017 21:35:41 +0000 Subject: [PATCH 09/12] upgraded alpine runit --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f651302..6fac0a4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM sdhibit/alpine-runit:3.5 +FROM sdhibit/alpine-runit:3.6 MAINTAINER Steve Hibit RUN addgroup -S madsonic \ From d6a13b69cee414c9f93cf6f216c714570414a2ce Mon Sep 17 00:00:00 2001 From: Stephen Hibit Date: Thu, 21 Jun 2018 22:03:47 -0400 Subject: [PATCH 10/12] Refactored to use s6, need to modify run script still --- Dockerfile | 77 ++++++++++++++++-------------------- madsonic.sh | 27 +++++++++++++ root/services.d/madsonic/run | 4 ++ 3 files changed, 66 insertions(+), 42 deletions(-) create mode 100644 root/services.d/madsonic/run diff --git a/Dockerfile b/Dockerfile index 6fac0a4..96a3f55 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,51 +1,44 @@ -FROM sdhibit/alpine-runit:3.6 -MAINTAINER Steve Hibit +FROM alpine:latest as builder -RUN addgroup -S madsonic \ - && adduser -SHG madsonic madsonic +ARG APP_VERSION=6.2 +ARG APP_REVISION=9080 +ARG APP_DATE=20161222 -# Install apk packages -RUN apk --update upgrade \ - && apk --no-cache add \ - openjdk8-jre-base \ - unzip \ - wget - -# Set Madsonic Package Information -ENV PKG_NAME madsonic -ENV PKG_VER 6.2.9080 -ENV PKG_VERA 6.2 -ENV PKG_DATE 20161222 +ENV APP_NAME madsonic ENV APP_BASEURL http://www.madsonic.org/download -ENV APP_PKGNAME ${PKG_DATE}_${PKG_NAME}-${PKG_VER}-standalone.zip -ENV TRAN_PKGNAME ${PKG_DATE}_${PKG_NAME}-transcode-linux-x64.zip -ENV APP_URL ${APP_BASEURL}/${PKG_VERA}/${APP_PKGNAME} +ENV APP_PKGNAME ${APP_DATE}_${APP_NAME}-${APP_VERSION}.${APP_REVISION}-war-jspc.zip +ENV TRAN_PKGNAME ${APP_DATE}_${APP_NAME}-transcode-linux-x64.zip +ENV APP_URL ${APP_BASEURL}/${APP_VERSION}/${APP_PKGNAME} ENV TRAN_URL ${APP_BASEURL}/transcode/${TRAN_PKGNAME} -ENV APP_PATH /var/madsonic - -# Download & Install Madsonic -RUN mkdir -p "${APP_PATH}/transcode" \ - && wget -O "${APP_PATH}/madsonic.zip" ${APP_URL} \ - && wget -O "${APP_PATH}/transcode/transcode.zip" ${TRAN_URL} \ - && unzip "${APP_PATH}/madsonic.zip" -d ${APP_PATH} \ - && unzip "${APP_PATH}/transcode/transcode.zip" -d "${APP_PATH}/transcode" \ - && rm "${APP_PATH}/madsonic.zip" \ - && rm "${APP_PATH}/transcode/transcode.zip" - -# Change ownership -RUN mkdir /config \ - && chown -R madsonic:madsonic \ - ${APP_PATH} \ - "/config" + +RUN apk --update upgrade \ + && apk --no-cache add \ + wget \ + unzip + +RUN mkdir -p /app/transcode \ + && wget -O "/tmp/madsonic.zip" ${APP_URL} \ + && wget -O "/tmp/transcode.zip" ${TRAN_URL} \ + && unzip "/tmp/madsonic.zip" -d "/app" \ + && unzip "/tmp/transcode.zip" -d "/app/transcode" \ + && rm "/tmp/madsonic.zip" \ + && rm "/tmp/transcode.zip" + +#-------------------------------------------- + +FROM sdhibit/alpine-s6:3.7 +LABEL maintainer="Steve Hibit " + +COPY --from=builder /app ${APP_PATH} + +RUN apk --update upgrade \ + && apk --no-cache add \ + --repository http://dl-cdn.alpinelinux.org/alpine/edge/community \ + libressl \ + openjdk8-jre-base VOLUME ["/config"] # HTTP ports EXPOSE 4040 -EXPOSE 4050 - -WORKDIR /var/madsonic - -# Add services to runit -ADD madsonic.sh /etc/service/madsonic/run -RUN chmod +x /etc/service/*/run +EXPOSE 4050 \ No newline at end of file diff --git a/madsonic.sh b/madsonic.sh index 362ee6a..2b9fb85 100644 --- a/madsonic.sh +++ b/madsonic.sh @@ -34,3 +34,30 @@ fi --default-playlist-export-folder=/config/playlists/export \ --default-playlist-backup-folder=/config/playlists/backup \ ${PORTS} + + +/* +#!/bin/sh + +mkdir -p /data/transcode +ln -s /usr/bin/ffmpeg /data/transcode/ffmpeg +ln -s /usr/bin/lame /data/transcode/lame + +chown -R $UID:$GID /data /playlists /libresonic + +exec su-exec $UID:$GID tini -- \ +java -Xmx256m \ + -Dserver.host=0.0.0.0 \ + -Dserver.port=4040 \ + -Dserver.contextPath=/ \ + -Dlibresonic.home=/data \ + -Dlibresonic.host=0.0.0.0 \ + -Dlibresonic.port=4040 \ + -Dlibresonic.contextPath=/ \ + -Dlibresonic.defaultMusicFolder=/musics \ + -Dlibresonic.defaultPodcastFolder=/podcasts \ + -Dlibresonic.defaultPlaylistFolder=/playlists \ + -Djava.awt.headless=true \ + -jar libresonic.war + +*/ \ No newline at end of file diff --git a/root/services.d/madsonic/run b/root/services.d/madsonic/run new file mode 100644 index 0000000..3baa132 --- /dev/null +++ b/root/services.d/madsonic/run @@ -0,0 +1,4 @@ +#!/usr/bin/with-contenv sh + +echo "Starting madsonic" +#s6-setuidgid appuser guacd -f \ No newline at end of file From bcae1a08782b504d57ce36fdd4dcebd8470b2246 Mon Sep 17 00:00:00 2001 From: Steve Hibit Date: Thu, 21 Jun 2018 20:05:42 -0400 Subject: [PATCH 11/12] modified runner script --- Dockerfile | 6 ++- madsonic.sh | 63 ---------------------------- root/etc/services.d/madsonic/run | 71 ++++++++++++++++++++++++++++++++ root/services.d/madsonic/run | 4 -- 4 files changed, 76 insertions(+), 68 deletions(-) delete mode 100644 madsonic.sh create mode 100755 root/etc/services.d/madsonic/run delete mode 100644 root/services.d/madsonic/run diff --git a/Dockerfile b/Dockerfile index 96a3f55..7545d2b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -37,8 +37,12 @@ RUN apk --update upgrade \ libressl \ openjdk8-jre-base +COPY root / + +RUN chmod +x /etc/services.d/*/run + VOLUME ["/config"] # HTTP ports EXPOSE 4040 -EXPOSE 4050 \ No newline at end of file +EXPOSE 4050 diff --git a/madsonic.sh b/madsonic.sh deleted file mode 100644 index 2b9fb85..0000000 --- a/madsonic.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh - -#create folders on config -mkdir -p /config/media/incoming -mkdir -p /config/media/podcast -mkdir -p /config/playlists/import -mkdir -p /config/playlists/export -mkdir -p /config/playlists/backup -mkdir -p /config/transcode - -#copy transcode to config directory - transcode directory is subdir of path set from --home flag, do not alter -cp /var/madsonic/transcode/transcode/* /config/transcode/ -chmod +x /config/transcode/* - -# Force Madsonic to run in foreground -sed -i 's/-jar madsonic-booter.jar > \${LOG} 2>\&1 \&/-jar madsonic-booter.jar/g' /var/madsonic/madsonic.sh - -if [ -z "$CONTEXT" ]; then - CONTEXT=/ -fi - -if [ "$SSL" = "yes" ]; then - PORTS="--https-port=4050" -else - PORTS="--port=4040" -fi - -/sbin/su-exec madsonic /var/madsonic/madsonic.sh \ - --home=/config \ - --context-path=$CONTEXT \ - --default-music-folder=/media \ - --default-podcast-folder=/config/media/podcast \ - --default-playlist-import-folder=/config/playlists/import \ - --default-playlist-export-folder=/config/playlists/export \ - --default-playlist-backup-folder=/config/playlists/backup \ - ${PORTS} - - -/* -#!/bin/sh - -mkdir -p /data/transcode -ln -s /usr/bin/ffmpeg /data/transcode/ffmpeg -ln -s /usr/bin/lame /data/transcode/lame - -chown -R $UID:$GID /data /playlists /libresonic - -exec su-exec $UID:$GID tini -- \ -java -Xmx256m \ - -Dserver.host=0.0.0.0 \ - -Dserver.port=4040 \ - -Dserver.contextPath=/ \ - -Dlibresonic.home=/data \ - -Dlibresonic.host=0.0.0.0 \ - -Dlibresonic.port=4040 \ - -Dlibresonic.contextPath=/ \ - -Dlibresonic.defaultMusicFolder=/musics \ - -Dlibresonic.defaultPodcastFolder=/podcasts \ - -Dlibresonic.defaultPlaylistFolder=/playlists \ - -Djava.awt.headless=true \ - -jar libresonic.war - -*/ \ No newline at end of file diff --git a/root/etc/services.d/madsonic/run b/root/etc/services.d/madsonic/run new file mode 100755 index 0000000..ca03af6 --- /dev/null +++ b/root/etc/services.d/madsonic/run @@ -0,0 +1,71 @@ +#!/usr/bin/with-contenv sh + +APP_UID=${APP_UID:-1000} +APP_GID=${APP_GID:-1000} + +APP_USER=${APP_USER:-appuser} +KEEP_TRANSCODE=${KEEP_TRANSCODE:-"false"} + +MADSONIC_HOME=/config +MADSONIC_HOST=0.0.0.0 +MADSONIC_PORT=4040 +MADSONIC_HTTPS_PORT=0 +MADSONIC_CONTEXT_PATH=${CONTEXT:-"/"} +MADSONIC_INIT_MEMORY=256 +MADSONIC_MAX_MEMORY=512 +MADSONIC_DEFAULT_MUSIC_FOLDER=/media +MADSONIC_DEFAULT_UPLOAD_FOLDER=/config/media/incoming +MADSONIC_DEFAULT_PODCAST_FOLDER=/config/media/podcast +MADSONIC_DEFAULT_PLAYLIST_IMPORT_FOLDER=/config/playlists/import +MADSONIC_DEFAULT_PLAYLIST_EXPORT_FOLDER=/config/playlists/export +MADSONIC_DEFAULT_PLAYLIST_BACKUP_FOLDER=/config/playlists/backup +MADSONIC_DEFAULT_TRANSCODE_FOLDER=/app/transcode +MADSONIC_DEFAULT_TIMEZONE= +MADSONIC_PIDFILE= +MADSONIC_UPDATE=true +MADSONIC_GZIP= +MADSONIC_DB= +quiet=0 + +mkdir -p ${MADSONIC_DEFAULT_UPLOAD_FOLDER} +mkdir -p ${MADSONIC_DEFAULT_PODCAST_FOLDER} +mkdir -p ${MADSONIC_DEFAULT_PLAYLIST_IMPORT_FOLDER} +mkdir -p ${MADSONIC_DEFAULT_PLAYLIST_EXPORT_FOLDER} +mkdir -p ${MADSONIC_DEFAULT_PLAYLIST_BACKUP_FOLDER} +mkdir -p ${MADSONIC_DEFAULT_TRANSCODE_FOLDER} + +# Use JAVA_HOME if set, otherwise assume java is in the path. +JAVA=java +if [ -e "${JAVA_HOME}" ] + then + JAVA=${JAVA_HOME}/bin/java +fi + +# Create Madsonic home directory. +mkdir -p ${MADSONIC_HOME} +LOG=${MADSONIC_HOME}/madsonic_sh.log +rm -f ${LOG} + +s6-setuidgid appuser ${JAVA} + -Xms${MADSONIC_INIT_MEMORY}m \ + -Xmx${MADSONIC_MAX_MEMORY}m \ + -Dmadsonic.home=${MADSONIC_HOME} \ + -Dmadsonic.host=${MADSONIC_HOST} \ + -Dmadsonic.port=${MADSONIC_PORT} \ + -Dmadsonic.httpsPort=${MADSONIC_HTTPS_PORT} \ + -Dmadsonic.contextPath=${MADSONIC_CONTEXT_PATH} \ + -Dmadsonic.defaultMusicFolder=${MADSONIC_DEFAULT_MUSIC_FOLDER} \ + -Dmadsonic.defaultUploadFolder=${MADSONIC_DEFAULT_UPLOAD_FOLDER} \ + -Dmadsonic.defaultPodcastFolder=${MADSONIC_DEFAULT_PODCAST_FOLDER} \ + -Dmadsonic.defaultPlaylistImportFolder=${MADSONIC_DEFAULT_PLAYLIST_IMPORT_FOLDER} \ + -Dmadsonic.defaultPlaylistExportFolder=${MADSONIC_DEFAULT_PLAYLIST_EXPORT_FOLDER} \ + -Dmadsonic.defaultPlaylistBackupFolder=${MADSONIC_DEFAULT_PLAYLIST_BACKUP_FOLDER} \ + -Dmadsonic.defaultTranscodeFolder=${MADSONIC_DEFAULT_TRANSCODE_FOLDER} \ + -Duser.timezone=${MADSONIC_DEFAULT_TIMEZONE} \ + -Dmadsonic.update=${MADSONIC_UPDATE} \ + -Dmadsonic.gzip=${MADSONIC_GZIP} \ + -Dmadsonic.db="${MADSONIC_DB}" \ + -Djava.awt.headless=true \ + -Djava.net.preferIPv4Stack=true \ + -verbose:gc \ + -jar madsonic.war > ${LOG} 2>&1 diff --git a/root/services.d/madsonic/run b/root/services.d/madsonic/run deleted file mode 100644 index 3baa132..0000000 --- a/root/services.d/madsonic/run +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/with-contenv sh - -echo "Starting madsonic" -#s6-setuidgid appuser guacd -f \ No newline at end of file From ba3c034d201ce102df3c837ce663b94d96874447 Mon Sep 17 00:00:00 2001 From: Steve Hibit Date: Sun, 24 Jun 2018 07:43:01 -0400 Subject: [PATCH 12/12] Modified madsonic run script --- Dockerfile | 28 ++++++--------- root/etc/services.d/madsonic/run | 62 ++++++++++++++++++++------------ 2 files changed, 50 insertions(+), 40 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7545d2b..8f6f43d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,25 +4,17 @@ ARG APP_VERSION=6.2 ARG APP_REVISION=9080 ARG APP_DATE=20161222 -ENV APP_NAME madsonic -ENV APP_BASEURL http://www.madsonic.org/download -ENV APP_PKGNAME ${APP_DATE}_${APP_NAME}-${APP_VERSION}.${APP_REVISION}-war-jspc.zip -ENV TRAN_PKGNAME ${APP_DATE}_${APP_NAME}-transcode-linux-x64.zip -ENV APP_URL ${APP_BASEURL}/${APP_VERSION}/${APP_PKGNAME} -ENV TRAN_URL ${APP_BASEURL}/transcode/${TRAN_PKGNAME} - +ARG APP_NAME=madsonic +ARG APP_BASEURL="http://www.madsonic.org/download" +ARG APP_PKGNAME="${APP_DATE}_${APP_NAME}-${APP_VERSION}.${APP_REVISION}-standalone.tar.gz" +ARG APP_URL="${APP_BASEURL}/${APP_VERSION}/${APP_PKGNAME}" + RUN apk --update upgrade \ && apk --no-cache add \ - wget \ - unzip + curl -RUN mkdir -p /app/transcode \ - && wget -O "/tmp/madsonic.zip" ${APP_URL} \ - && wget -O "/tmp/transcode.zip" ${TRAN_URL} \ - && unzip "/tmp/madsonic.zip" -d "/app" \ - && unzip "/tmp/transcode.zip" -d "/app/transcode" \ - && rm "/tmp/madsonic.zip" \ - && rm "/tmp/transcode.zip" +RUN mkdir -p /app \ + && curl -sSL ${APP_URL} | tar xfz - -C /app #-------------------------------------------- @@ -34,12 +26,14 @@ COPY --from=builder /app ${APP_PATH} RUN apk --update upgrade \ && apk --no-cache add \ --repository http://dl-cdn.alpinelinux.org/alpine/edge/community \ + ffmpeg \ + lame \ libressl \ openjdk8-jre-base COPY root / -RUN chmod +x /etc/services.d/*/run +RUN chmod -R +x /etc/services.d/*/run VOLUME ["/config"] diff --git a/root/etc/services.d/madsonic/run b/root/etc/services.d/madsonic/run index ca03af6..9cc9a48 100755 --- a/root/etc/services.d/madsonic/run +++ b/root/etc/services.d/madsonic/run @@ -1,25 +1,32 @@ #!/usr/bin/with-contenv sh -APP_UID=${APP_UID:-1000} -APP_GID=${APP_GID:-1000} - +APP_UID=${APP_UID:-666} +APP_GID=${APP_GID:-666} APP_USER=${APP_USER:-appuser} + KEEP_TRANSCODE=${KEEP_TRANSCODE:-"false"} -MADSONIC_HOME=/config +CONFIG_PATH=${HOME_PATH:-"/config"} +CONTEXT=${CONTEXT:-"/"} +MEDIA_PATH=${MEDIA_PATH:-"/media"} +PODCAST_PATH=${PODCAST_PATH:-"/podcast"} +PLAYLIST_PATH=${PLAYLIST_PATH:-"/playlist"} +TRANSCODE_PATH=${TRANSCODE_PATH:-"/app/transcode"} + +MADSONIC_HOME=$CONFIG_PATH MADSONIC_HOST=0.0.0.0 MADSONIC_PORT=4040 MADSONIC_HTTPS_PORT=0 -MADSONIC_CONTEXT_PATH=${CONTEXT:-"/"} +MADSONIC_CONTEXT_PATH=$CONTEXT MADSONIC_INIT_MEMORY=256 MADSONIC_MAX_MEMORY=512 -MADSONIC_DEFAULT_MUSIC_FOLDER=/media +MADSONIC_DEFAULT_MUSIC_FOLDER=$MEDIA_PATH MADSONIC_DEFAULT_UPLOAD_FOLDER=/config/media/incoming -MADSONIC_DEFAULT_PODCAST_FOLDER=/config/media/podcast -MADSONIC_DEFAULT_PLAYLIST_IMPORT_FOLDER=/config/playlists/import -MADSONIC_DEFAULT_PLAYLIST_EXPORT_FOLDER=/config/playlists/export -MADSONIC_DEFAULT_PLAYLIST_BACKUP_FOLDER=/config/playlists/backup -MADSONIC_DEFAULT_TRANSCODE_FOLDER=/app/transcode +MADSONIC_DEFAULT_PODCAST_FOLDER=$PODCAST_PATH +MADSONIC_DEFAULT_PLAYLIST_IMPORT_FOLDER="$PLAYLIST_PATH/import" +MADSONIC_DEFAULT_PLAYLIST_EXPORT_FOLDER="$PLAYLIST_PATH/export" +MADSONIC_DEFAULT_PLAYLIST_BACKUP_FOLDER="$PLAYLIST_PATH/backup" +MADSONIC_DEFAULT_TRANSCODE_FOLDER=$TRANSCODE_PATH MADSONIC_DEFAULT_TIMEZONE= MADSONIC_PIDFILE= MADSONIC_UPDATE=true @@ -27,12 +34,12 @@ MADSONIC_GZIP= MADSONIC_DB= quiet=0 -mkdir -p ${MADSONIC_DEFAULT_UPLOAD_FOLDER} -mkdir -p ${MADSONIC_DEFAULT_PODCAST_FOLDER} -mkdir -p ${MADSONIC_DEFAULT_PLAYLIST_IMPORT_FOLDER} -mkdir -p ${MADSONIC_DEFAULT_PLAYLIST_EXPORT_FOLDER} -mkdir -p ${MADSONIC_DEFAULT_PLAYLIST_BACKUP_FOLDER} -mkdir -p ${MADSONIC_DEFAULT_TRANSCODE_FOLDER} +mkdir -p $MADSONIC_DEFAULT_UPLOAD_FOLDER +mkdir -p $MADSONIC_DEFAULT_PODCAST_FOLDER +mkdir -p $MADSONIC_DEFAULT_PLAYLIST_IMPORT_FOLDER +mkdir -p $MADSONIC_DEFAULT_PLAYLIST_EXPORT_FOLDER +mkdir -p $MADSONIC_DEFAULT_PLAYLIST_BACKUP_FOLDER +mkdir -p $MADSONIC_DEFAULT_TRANSCODE_FOLDER # Use JAVA_HOME if set, otherwise assume java is in the path. JAVA=java @@ -41,14 +48,25 @@ if [ -e "${JAVA_HOME}" ] JAVA=${JAVA_HOME}/bin/java fi +# Use system install of ffmpeg for transcoding +if [ "$KEEP_TRANSCODE" == "false" ]; then + [ ! -d $MADSONIC_DEFAULT_TRANSCODE_FOLDER ] || rm -r $MADSONIC_DEFAULT_TRANSCODE_FOLDER + mkdir -p $MADSONIC_DEFAULT_TRANSCODE_FOLDER + ln -s "$(command -v ffmpeg)" $MADSONIC_DEFAULT_TRANSCODE_FOLDER/ffmpeg + ln -s "$(command -v lame)" $MADSONIC_DEFAULT_TRANSCODE_FOLDER/lame +fi + # Create Madsonic home directory. mkdir -p ${MADSONIC_HOME} LOG=${MADSONIC_HOME}/madsonic_sh.log rm -f ${LOG} -s6-setuidgid appuser ${JAVA} - -Xms${MADSONIC_INIT_MEMORY}m \ - -Xmx${MADSONIC_MAX_MEMORY}m \ +if [ -e "${APP_PATH}" ] + then + cd ${APP_PATH} +fi + +s6-setuidgid ${APP_USER} ${JAVA} -Xms${MADSONIC_INIT_MEMORY}m -Xmx${MADSONIC_MAX_MEMORY}m \ -Dmadsonic.home=${MADSONIC_HOME} \ -Dmadsonic.host=${MADSONIC_HOST} \ -Dmadsonic.port=${MADSONIC_PORT} \ @@ -66,6 +84,4 @@ s6-setuidgid appuser ${JAVA} -Dmadsonic.gzip=${MADSONIC_GZIP} \ -Dmadsonic.db="${MADSONIC_DB}" \ -Djava.awt.headless=true \ - -Djava.net.preferIPv4Stack=true \ - -verbose:gc \ - -jar madsonic.war > ${LOG} 2>&1 + -jar madsonic-booter.jar >> ${LOG} 2>&1