commit
b84137076e
@ -0,0 +1,4 @@ |
|||||||
|
.gitignore |
||||||
|
pom.xml |
||||||
|
target/ |
||||||
|
!target/dependency/* |
@ -0,0 +1,29 @@ |
|||||||
|
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 AIRSONIC_PORT=4040 AIRSONIC_DIR=/airsonic |
||||||
|
|
||||||
|
WORKDIR $AIRSONIC_DIR |
||||||
|
|
||||||
|
RUN apk --no-cache add \ |
||||||
|
ffmpeg \ |
||||||
|
lame \ |
||||||
|
bash \ |
||||||
|
libressl \ |
||||||
|
ca-certificates \ |
||||||
|
tini \ |
||||||
|
openjdk8-jre |
||||||
|
|
||||||
|
COPY run.sh /usr/local/bin/run.sh |
||||||
|
|
||||||
|
RUN chmod +x /usr/local/bin/run.sh |
||||||
|
|
||||||
|
COPY target/dependency/airsonic-main.war airsonic.war |
||||||
|
|
||||||
|
EXPOSE $AIRSONIC_PORT |
||||||
|
|
||||||
|
VOLUME $AIRSONIC_DIR/data $AIRSONIC_DIR/music $AIRSONIC_DIR/playlists $AIRSONIC_DIR/podcasts |
||||||
|
|
||||||
|
ENTRYPOINT ["tini", "--", "run.sh"] |
@ -0,0 +1,66 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> |
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion> |
||||||
|
<parent> |
||||||
|
<relativePath>../../pom.xml</relativePath> |
||||||
|
<artifactId>airsonic</artifactId> |
||||||
|
<version>6.3-SNAPSHOT</version> |
||||||
|
<groupId>org.airsonic.player</groupId> |
||||||
|
</parent> |
||||||
|
<packaging>pom</packaging> |
||||||
|
<artifactId>airsonic-docker</artifactId> |
||||||
|
<name>Airsonic Docker Image</name> |
||||||
|
|
||||||
|
<dependencies> |
||||||
|
<dependency> |
||||||
|
<groupId>org.airsonic.player</groupId> |
||||||
|
<artifactId>airsonic-main</artifactId> |
||||||
|
<version>6.3-SNAPSHOT</version> |
||||||
|
<type>war</type> |
||||||
|
</dependency> |
||||||
|
</dependencies> |
||||||
|
|
||||||
|
<build> |
||||||
|
<plugins> |
||||||
|
<plugin> |
||||||
|
<groupId>com.spotify</groupId> |
||||||
|
<artifactId>dockerfile-maven-plugin</artifactId> |
||||||
|
<version>1.3.4</version> |
||||||
|
<executions> |
||||||
|
<execution> |
||||||
|
<id>default</id> |
||||||
|
<goals> |
||||||
|
<goal>build</goal> |
||||||
|
</goals> |
||||||
|
<phase>package</phase> |
||||||
|
</execution> |
||||||
|
</executions> |
||||||
|
<configuration> |
||||||
|
<repository>airsonic/airsonic</repository> |
||||||
|
<tag>${project.version}</tag> |
||||||
|
<retryCount>0</retryCount> |
||||||
|
</configuration> |
||||||
|
</plugin> |
||||||
|
<plugin> |
||||||
|
<artifactId>maven-dependency-plugin</artifactId> |
||||||
|
<groupId>org.apache.maven.plugins</groupId> |
||||||
|
<version>3.0.1</version> |
||||||
|
<configuration> |
||||||
|
<stripClassifier>true</stripClassifier> |
||||||
|
<stripVersion>true</stripVersion> |
||||||
|
</configuration> |
||||||
|
<executions> |
||||||
|
<execution> |
||||||
|
<id>copy</id> |
||||||
|
<phase>generate-sources</phase> |
||||||
|
<goals> |
||||||
|
<goal>copy-dependencies</goal> |
||||||
|
</goals> |
||||||
|
</execution> |
||||||
|
</executions> |
||||||
|
</plugin> |
||||||
|
</plugins> |
||||||
|
</build> |
||||||
|
|
||||||
|
</project> |
@ -0,0 +1,28 @@ |
|||||||
|
#!/bin/bash |
||||||
|
|
||||||
|
set -e |
||||||
|
|
||||||
|
mkdir -p $AIRSONIC_DIR/data/transcode |
||||||
|
ln -fs /usr/bin/ffmpeg $AIRSONIC_DIR/data/transcode/ffmpeg |
||||||
|
ln -fs /usr/bin/lame $AIRSONIC_DIR/data/transcode/lame |
||||||
|
|
||||||
|
if [[ $# -lt 1 ]] || [[ ! "$1" == "java"* ]]; then |
||||||
|
|
||||||
|
java_opts_array=() |
||||||
|
while IFS= read -r -d '' item; do |
||||||
|
java_opts_array+=( "$item" ) |
||||||
|
done < <([[ $JAVA_OPTS ]] && xargs printf '%s\0' <<<"$JAVA_OPTS") |
||||||
|
exec 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 \ |
||||||
|
"${java_opts_array[@]}" \ |
||||||
|
-jar airsonic.war "$@" |
||||||
|
fi |
||||||
|
|
||||||
|
exec "$@" |
Loading…
Reference in new issue