From f740cde12d7314bc96d088d7c82f193e013f0bd0 Mon Sep 17 00:00:00 2001 From: thelamer Date: Sun, 24 Feb 2019 21:35:29 -0800 Subject: [PATCH] Rebase to Alpine 3.9, add themes to baseimage, add python and findutil --- Dockerfile | 29 +++++++++++++++++++++++++++-- Dockerfile.aarch64 | 29 +++++++++++++++++++++++++++-- Dockerfile.armhf | 29 +++++++++++++++++++++++++++-- Jenkinsfile | 2 +- README.md | 17 ++++++++++------- jenkins-vars.yml | 2 +- readme-vars.yml | 10 +++++++++- 7 files changed, 102 insertions(+), 16 deletions(-) diff --git a/Dockerfile b/Dockerfile index b8c2c6d..bffe1ab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM lsiobase/alpine:3.8 +FROM lsiobase/alpine:3.9 # set version label ARG BUILD_DATE @@ -10,15 +10,40 @@ RUN \ echo "**** install packages ****" && \ apk add --no-cache \ curl \ + findutils \ jq \ openssl \ p7zip \ + python \ rsync \ tar \ transmission-cli \ transmission-daemon \ unrar \ - unzip + unzip && \ + echo "**** install third party themes ****" && \ + curl -o \ + /tmp/combustion.zip -L \ + "https://github.com/Secretmapper/combustion/archive/release.zip" && \ + unzip \ + /tmp/combustion.zip -d \ + / && \ + mkdir -p /tmp/twctemp && \ + TWCVERSION=$(curl -sX GET "https://api.github.com/repos/ronggang/transmission-web-control/releases/latest" \ + | awk '/tag_name/{print $4;exit}' FS='[""]') && \ + curl -o \ + /tmp/twc.tar.gz -L \ + "https://github.com/ronggang/transmission-web-control/archive/${TWCVERSION}.tar.gz" && \ + tar xf \ + /tmp/twc.tar.gz -C \ + /tmp/twctemp --strip-components=1 && \ + mv /tmp/twctemp/src /transmission-web-control && \ + echo "**** cleanup ****" && \ + rm -rf \ + /tmp/* + + + # copy local files COPY root/ / diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index a2ead27..9e93626 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,4 +1,4 @@ -FROM lsiobase/alpine.arm64:3.8 +FROM lsiobase/alpine.arm64:3.9 # Add qemu to build on x86_64 systems COPY qemu-aarch64-static /usr/bin @@ -13,15 +13,40 @@ RUN \ echo "**** install packages ****" && \ apk add --no-cache \ curl \ + findutils \ jq \ openssl \ p7zip \ + python \ rsync \ tar \ transmission-cli \ transmission-daemon \ unrar \ - unzip + unzip && \ + echo "**** install third party themes ****" && \ + curl -o \ + /tmp/combustion.zip -L \ + "https://github.com/Secretmapper/combustion/archive/release.zip" && \ + unzip \ + /tmp/combustion.zip -d \ + / && \ + mkdir -p /tmp/twctemp && \ + TWCVERSION=$(curl -sX GET "https://api.github.com/repos/ronggang/transmission-web-control/releases/latest" \ + | awk '/tag_name/{print $4;exit}' FS='[""]') && \ + curl -o \ + /tmp/twc.tar.gz -L \ + "https://github.com/ronggang/transmission-web-control/archive/${TWCVERSION}.tar.gz" && \ + tar xf \ + /tmp/twc.tar.gz -C \ + /tmp/twctemp --strip-components=1 && \ + mv /tmp/twctemp/src /transmission-web-control && \ + echo "**** cleanup ****" && \ + rm -rf \ + /tmp/* + + + # copy local files COPY root/ / diff --git a/Dockerfile.armhf b/Dockerfile.armhf index b114990..38307e1 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,4 +1,4 @@ -FROM lsiobase/alpine.armhf:3.8 +FROM lsiobase/alpine.armhf:3.9 # Add qemu to build on x86_64 systems COPY qemu-arm-static /usr/bin @@ -13,15 +13,40 @@ RUN \ echo "**** install packages ****" && \ apk add --no-cache \ curl \ + findutils \ jq \ openssl \ p7zip \ + python \ rsync \ tar \ transmission-cli \ transmission-daemon \ unrar \ - unzip + unzip && \ + echo "**** install third party themes ****" && \ + curl -o \ + /tmp/combustion.zip -L \ + "https://github.com/Secretmapper/combustion/archive/release.zip" && \ + unzip \ + /tmp/combustion.zip -d \ + / && \ + mkdir -p /tmp/twctemp && \ + TWCVERSION=$(curl -sX GET "https://api.github.com/repos/ronggang/transmission-web-control/releases/latest" \ + | awk '/tag_name/{print $4;exit}' FS='[""]') && \ + curl -o \ + /tmp/twc.tar.gz -L \ + "https://github.com/ronggang/transmission-web-control/archive/${TWCVERSION}.tar.gz" && \ + tar xf \ + /tmp/twc.tar.gz -C \ + /tmp/twctemp --strip-components=1 && \ + mv /tmp/twctemp/src /transmission-web-control && \ + echo "**** cleanup ****" && \ + rm -rf \ + /tmp/* + + + # copy local files COPY root/ / diff --git a/Jenkinsfile b/Jenkinsfile index 25bc4d2..46e01e8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -96,7 +96,7 @@ pipeline { steps{ script{ env.EXT_RELEASE = sh( - script: ''' curl -s http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/ |awk -F '(transmission-cli-|.apk)' '/transmission-cli.*.apk/ {print $2}' ''', + script: ''' curl -s http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/ |awk -F '(transmission-cli-|.apk)' '/transmission-cli.*.apk/ {print $2}' ''', returnStdout: true).trim() env.RELEASE_LINK = 'custom_command' } diff --git a/README.md b/README.md index b7b025c..c4c82eb 100644 --- a/README.md +++ b/README.md @@ -14,12 +14,6 @@ Find us at: * [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more! * [Podcast](https://anchor.fm/linuxserverio) - on hiatus. Coming back soon (late 2018). -# PSA: Changes are happening - -From August 2018 onwards, Linuxserver are in the midst of switching to a new CI platform which will enable us to build and release multiple architectures under a single repo. To this end, existing images for `arm64` and `armhf` builds are being deprecated. They are replaced by a manifest file in each container which automatically pulls the correct image for your architecture. You'll also be able to pull based on a specific architecture tag. - -TLDR: Multi-arch support is changing from multiple repos to one repo per container image. - # [linuxserver/transmission](https://github.com/linuxserver/docker-transmission) [![](https://img.shields.io/discord/354974912613449730.svg?logo=discord&label=LSIO%20Discord&style=flat-square)](https://discord.gg/YWrKVTn) [![](https://images.microbadger.com/badges/version/linuxserver/transmission.svg)](https://microbadger.com/images/linuxserver/transmission "Get your own version badge on microbadger.com") @@ -35,7 +29,7 @@ TLDR: Multi-arch support is changing from multiple repos to one repo per contain ## Supported Architectures -Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list). +Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/). Simply pulling `linuxserver/transmission` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. @@ -60,6 +54,7 @@ docker create \ -e PUID=1001 \ -e PGID=1001 \ -e TZ=Europe/London \ + -e TRANSMISSION_WEB_HOME=/combustion-release/ `#optional` \ -p 9091:9091 \ -p 51413:51413 \ -p 51413:51413/udp \ @@ -86,6 +81,7 @@ services: - PUID=1001 - PGID=1001 - TZ=Europe/London + - TRANSMISSION_WEB_HOME=/combustion-release/ #optional volumes: - :/config - :/downloads @@ -110,6 +106,7 @@ Container images are configured using parameters passed at runtime (such as thos | `-e PUID=1001` | for UserID - see below for explanation | | `-e PGID=1001` | for GroupID - see below for explanation | | `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London. | +| `-e TRANSMISSION_WEB_HOME=/combustion-release/` | Specify an alternative UI options are `/combustion-release/` and `/transmission-web-control/`. | | `-v /config` | Where transmission should store config files and logs. | | `-v /downloads` | Local path for downloads. | | `-v /watch` | Watch folder for torrent files. | @@ -132,6 +129,11 @@ In this instance `PUID=1001` and `PGID=1001`, to find yours use `id user` as bel ## Application Setup Webui is on port 9091, the settings.json file in /config has extra settings not available in the webui. Stop the container before editing it or any changes won't be saved. + +For users pulling an update and unable to access the webui setting you may need to set "rpc-host-whitelist-enabled": false, in /config/settings.json` + +If you choose to use transmission-web-control as your default UI, just note that the origional Web UI will not be available to you despite the button being present. + ## Securing the webui with a username/password. this requires 3 settings to be changed in the settings.json file. @@ -186,6 +188,7 @@ Below are the instructions for updating containers: ## Versions +* **22.02.19:** - Rebase to Alpine 3.9, add themes to baseimage, add python and findutils. * **22.02.19:** - Catch term and clean exit. * **07.02.19:** - Add pipeline logic and multi arch. * **15.08.18:** - Rebase to alpine linux 3.8. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index eb6f7e1..b67a702 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -3,7 +3,7 @@ # jenkins variables project_name: docker-transmission external_type: na -custom_version_command: "curl -s http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/ |awk -F '(transmission-cli-|.apk)' '/transmission-cli.*.apk/ {print $2}'" +custom_version_command: "curl -s http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/ |awk -F '(transmission-cli-|.apk)' '/transmission-cli.*.apk/ {print $2}'" release_type: stable release_tag: latest ls_branch: master diff --git a/readme-vars.yml b/readme-vars.yml index 3fc4e23..15160a7 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -38,7 +38,9 @@ param_device_map: false cap_add_param: false # optional container parameters -opt_param_usage_include_env: false +opt_param_usage_include_env: true +opt_param_env_vars: + - { env_var: "TRANSMISSION_WEB_HOME", env_value: "/combustion-release/", desc: "Specify an alternative UI options are `/combustion-release/` and `/transmission-web-control/`." } opt_param_usage_include_vols: false opt_param_usage_include_ports: false opt_param_device_map: false @@ -49,6 +51,11 @@ optional_block_1: false app_setup_block_enabled: true app_setup_block: | Webui is on port 9091, the settings.json file in /config has extra settings not available in the webui. Stop the container before editing it or any changes won't be saved. + + For users pulling an update and unable to access the webui setting you may need to set "rpc-host-whitelist-enabled": false, in /config/settings.json` + + If you choose to use transmission-web-control as your default UI, just note that the origional Web UI will not be available to you despite the button being present. + ## Securing the webui with a username/password. this requires 3 settings to be changed in the settings.json file. @@ -74,6 +81,7 @@ app_setup_block: | # changelog changelogs: + - { date: "22.02.19:", desc: "Rebase to Alpine 3.9, add themes to baseimage, add python and findutils." } - { date: "22.02.19:", desc: "Catch term and clean exit." } - { date: "07.02.19:", desc: "Add pipeline logic and multi arch." } - { date: "15.08.18:", desc: "Rebase to alpine linux 3.8." }