From 4e6e8511b8c674f9bc5df6839882d609d6525630 Mon Sep 17 00:00:00 2001 From: Bruno Perel Date: Sun, 3 Dec 2017 01:47:47 +0100 Subject: [PATCH] Use separate container for the RSS plugin --- Dockerfile | 3 --- docker-compose-armhf.yml | 10 ++++++++++ docker-compose.yml | 7 +++++++ plugins/rss/Dockerfile | 16 ++++++++++++++++ plugins/rss/Dockerfile.armhf | 16 ++++++++++++++++ plugins/rss/environment-variables.tmpl | 4 ++++ plugins/rss/start.sh | 13 +++++++++++++ .../rss}/transmission-rss.tmpl | 2 +- transmission/environment-variables.tmpl | 2 -- transmission/start.sh | 11 ----------- 10 files changed, 67 insertions(+), 17 deletions(-) create mode 100644 plugins/rss/Dockerfile create mode 100644 plugins/rss/Dockerfile.armhf create mode 100644 plugins/rss/environment-variables.tmpl create mode 100755 plugins/rss/start.sh rename {transmission => plugins/rss}/transmission-rss.tmpl (87%) diff --git a/Dockerfile b/Dockerfile index 993735729..2c6160ce2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,8 +11,6 @@ RUN apt-get update \ && add-apt-repository ppa:transmissionbt/ppa \ && wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg | apt-key add - \ && echo "deb http://build.openvpn.net/debian/openvpn/stable xenial main" > /etc/apt/sources.list.d/openvpn-aptrepo.list \ - && apt-get install -y sudo transmission-cli transmission-common transmission-daemon curl rar unrar zip unzip wget gcc make ruby2.3-dev \ - && gem install transmission-rss \ && apt-get update \ && apt-get install -y sudo transmission-cli transmission-common transmission-daemon curl rar unrar zip unzip ufw iputils-ping openvpn \ && wget https://github.com/Secretmapper/combustion/archive/release.zip \ @@ -34,7 +32,6 @@ ADD transmission/ /etc/transmission/ ENV OPENVPN_USERNAME=**None** \ OPENVPN_PASSWORD=**None** \ OPENVPN_PROVIDER=**None** \ - RSS_URL=**None** \ TRANSMISSION_ALT_SPEED_DOWN=50 \ TRANSMISSION_ALT_SPEED_ENABLED=false \ TRANSMISSION_ALT_SPEED_TIME_BEGIN=540 \ diff --git a/docker-compose-armhf.yml b/docker-compose-armhf.yml index e21eaf1e8..7369517b1 100644 --- a/docker-compose-armhf.yml +++ b/docker-compose-armhf.yml @@ -37,3 +37,13 @@ services: - "8080:8080" volumes: - /etc/localtime:/etc/localtime:ro + + rss: + build: + context: ./plugins/rss + dockerfile: Dockerfile.armhf + image: haugene/rpi-transmission-plugin-rss + links: + - transmission + environment: + - RSS_URL=http://.../xxxxx.rss diff --git a/docker-compose.yml b/docker-compose.yml index 1cc6ee80d..6f0115e5c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -30,3 +30,10 @@ services: - 8080:8080 volumes: - /etc/localtime:/etc/localtime:ro + + rss: + image: haugene/transmission-rss + links: + - transmission + environment: + - RSS_URL=http://.../xxxxx.rss diff --git a/plugins/rss/Dockerfile b/plugins/rss/Dockerfile new file mode 100644 index 000000000..5e312dab3 --- /dev/null +++ b/plugins/rss/Dockerfile @@ -0,0 +1,16 @@ +FROM ubuntu:16.04 +MAINTAINER Kristian Haugene + +# Update packages and install software +RUN apt-get update \ + && apt-get -y upgrade \ + && apt-get -y install curl gcc make ruby2.3-dev \ + && gem install transmission-rss \ + && curl -L https://github.com/jwilder/dockerize/releases/download/v0.5.0/dockerize-linux-amd64-v0.5.0.tar.gz | tar -C /usr/local/bin -xzv + +ADD . /etc/transmission-rss + +ENV TRANSMISSION_DOWNLOAD_DIR=/data/completed \ + RSS_URL=**None** + +CMD ["/etc/transmission-rss/start.sh"] diff --git a/plugins/rss/Dockerfile.armhf b/plugins/rss/Dockerfile.armhf new file mode 100644 index 000000000..e16932dc4 --- /dev/null +++ b/plugins/rss/Dockerfile.armhf @@ -0,0 +1,16 @@ +FROM resin/rpi-raspbian:jessie +MAINTAINER Kristian Haugene + +# Update packages and install software +RUN apt-get update \ + && apt-get -y upgrade \ + && apt-get -y install curl gcc make ruby2.3-dev \ + && gem install transmission-rss \ + && curl -L https://github.com/jwilder/dockerize/releases/download/v0.2.0/dockerize-linux-armhf-v0.2.0.tar.gz | tar -C /usr/local/bin -xzv \ + +ADD . /etc/transmission-rss + +ENV TRANSMISSION_DOWNLOAD_DIR=/data/completed \ + RSS_URL=**None** + +CMD ["/etc/transmission-rss/start.sh"] diff --git a/plugins/rss/environment-variables.tmpl b/plugins/rss/environment-variables.tmpl new file mode 100644 index 000000000..1a2f90ce6 --- /dev/null +++ b/plugins/rss/environment-variables.tmpl @@ -0,0 +1,4 @@ +#! /bin/sh + +export TRANSMISSION_DOWNLOAD_DIR={{ .Env.TRANSMISSION_DOWNLOAD_DIR }} +export RSS_URL="{{ .Env.RSS_URL }}" \ No newline at end of file diff --git a/plugins/rss/start.sh b/plugins/rss/start.sh new file mode 100755 index 000000000..348794f49 --- /dev/null +++ b/plugins/rss/start.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +# Source our persisted env variables from container startup +dockerize -template /etc/transmission-rss/environment-variables.tmpl:/etc/transmission-rss/environment-variables.sh +. /etc/transmission-rss/environment-variables.sh + +if [ -z "${RSS_URL}" ] || [ "${RSS_URL}" = "**None**" ] ; then + echo "NO RSS URL CONFIGURED, IGNORING" +else + dockerize -template /etc/transmission-rss/transmission-rss.tmpl:/etc/transmission-rss.conf + echo "STARTING RSS PLUGIN" + transmission-rss +fi diff --git a/transmission/transmission-rss.tmpl b/plugins/rss/transmission-rss.tmpl similarity index 87% rename from transmission/transmission-rss.tmpl rename to plugins/rss/transmission-rss.tmpl index 499e88e94..d5dca3185 100644 --- a/transmission/transmission-rss.tmpl +++ b/plugins/rss/transmission-rss.tmpl @@ -2,6 +2,6 @@ feeds: - url: {{ .Env.RSS_URL }} download_path: {{ .Env.TRANSMISSION_DOWNLOAD_DIR }} server: - host: 127.0.0.1 + host: transmission port: 9091 rpc_path: /transmission/rpc \ No newline at end of file diff --git a/transmission/environment-variables.tmpl b/transmission/environment-variables.tmpl index 1c13cfa4e..5ae9d6538 100644 --- a/transmission/environment-variables.tmpl +++ b/transmission/environment-variables.tmpl @@ -73,8 +73,6 @@ export TRANSMISSION_WATCH_DIR_ENABLED={{ .Env.TRANSMISSION_WATCH_DIR_ENABLED }} # Transmission needs to know which VPN provider is used export OPENVPN_PROVIDER={{ .Env.OPENVPN_PROVIDER }} -export RSS_URL="{{ .Env.RSS_URL }}" - export ENABLE_UFW={{ .Env.ENABLE_UFW }} export TRANSMISSION_WEB_UI={{ .Env.TRANSMISSION_WEB_UI }} diff --git a/transmission/start.sh b/transmission/start.sh index 573a06f0b..e6e53134b 100755 --- a/transmission/start.sh +++ b/transmission/start.sh @@ -18,10 +18,6 @@ if [ "kettu" = "$TRANSMISSION_WEB_UI" ]; then export TRANSMISSION_WEB_HOME=/opt/transmission-ui/kettu fi -if [ ! -z "${RSS_URL}" ] && [ "${RSS_URL}" != "**None**" ] ; then - dockerize -template /etc/transmission/transmission-rss.tmpl:/etc/transmission-rss.conf -fi - echo "Generating transmission settings.json from env variables" # Ensure TRANSMISSION_HOME is created mkdir -p ${TRANSMISSION_HOME} @@ -46,11 +42,4 @@ else echo "NO PORT UPDATER FOR THIS PROVIDER" fi -if [ -z "${RSS_URL}" ] || [ "${RSS_URL}" = "**None**" ] ; then - echo "NO RSS URL CONFIGURED, IGNORING" -else - echo "STARTING RSS PLUGIN" - transmission-rss -fi - echo "Transmission startup script complete."