From f61d9f148906e96841d673809e7f93fb274e3d76 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Sat, 22 Jul 2017 17:04:31 +0200 Subject: [PATCH] Add project official docker image. Tag for docker image is set from project version. To build docker image for the project run: - mvn package - mvn -N dockerfile:build Created docker image can be uploaded to the docker hub: - mvn -N dockerfile:push Signed-off-by: Yahor Berdnikau --- .dockerignore | 15 +++++++++++++++ Dockerfile | 27 +++++++++++++++++++++++++++ dockerfiles/run.sh | 19 +++++++++++++++++++ pom.xml | 10 ++++++++++ 4 files changed, 71 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100755 dockerfiles/run.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..82f10424 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,15 @@ +*.md +*.xml +*.yml +*.txt +*.html + +.gitignore +.git/ +contrib/ +airsonic-main/ +!airsonic-main/target/airsonic.war +subsonic-rest-api/ +airsonic-sonos-api/ +repo/ +target/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..333b094e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +FROM alpine:3.6 + +LABEL description="Airsonic is a free, web-based media streamer, providing ubiquitious access to your music." \ + url="https://github.com/airsonic/airsonic" + +ENV UID=1001 GID=1001 AIRSONIC_PORT=4040 AIRSONIC_DIR=/airsonic + +WORKDIR $AIRSONIC_DIR + +COPY dockerfiles/run.sh /usr/local/bin/run.sh +COPY airsonic-main/target/airsonic.war airsonic.war + +RUN apk --no-cache add \ + ffmpeg \ + lame \ + su-exec \ + libressl \ + ca-certificates \ + tini \ + openjdk8-jre \ + && chmod +x /usr/local/bin/run.sh + +EXPOSE $AIRSONIC_PORT + +VOLUME $AIRSONIC_DIR/data $AIRSONIC_DIR/music $AIRSONIC_DIR/playlists $AIRSONIC_DIR/podcasts + +ENTRYPOINT ["run.sh"] diff --git a/dockerfiles/run.sh b/dockerfiles/run.sh new file mode 100755 index 00000000..1c40268b --- /dev/null +++ b/dockerfiles/run.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +mkdir -p $AIRSONIC_DIR/data/transcode +ln -s /usr/bin/ffmpeg $AIRSONIC_DIR/data/transcode/ffmpeg +ln -s /usr/bin/lame $AIRSONIC_DIR/data/transcode/lame + +chown -R $UID:$GID $AIRSONIC_DIR/data $AIRSONIC_DIR/playlists $AIRSONIC_DIR/podcasts + +exec su-exec $UID:$GID tini -- \ + java -Xmx256m \ + -Dserver.host=0.0.0.0 \ + -Dserver.port=$AIRSONIC_PORT \ + -Dserver.contextPath=/ \ + -Dairsonic.home=$AIRSONIC_DIR/data \ + -Dairsonic.defaultMusicFolder=$AIRSONIC_DIR/musics \ + -Dairsonic.defaultPodcastFolder=$AIRSONIC_DIR/podcasts \ + -Dairsonic.defaultPlaylistFolder=$AIRSONIC_DIR/playlists \ + -Djava.awt.headless=true \ + -jar airsonic.war diff --git a/pom.xml b/pom.xml index eecf0c0c..c4c59c82 100644 --- a/pom.xml +++ b/pom.xml @@ -169,6 +169,16 @@ + + com.spotify + dockerfile-maven-plugin + 1.3.4 + false + + airsonic/airsonic + ${project.version} + +