From b07c8331a869120e28bc4dc45aac1e60ffabea26 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Sat, 11 Feb 2023 20:13:36 +0000 Subject: [PATCH] Rebase to 3.17, migrate to s6v3 --- Dockerfile | 19 +++++++------------ Dockerfile.aarch64 | 19 +++++++------------ Dockerfile.armhf | 19 +++++++------------ Jenkinsfile | 2 +- README.md | 15 ++++++++------- jenkins-vars.yml | 2 +- readme-vars.yml | 7 ++++--- root/etc/cont-init.d/30-config | 9 --------- .../dependencies.d/init-jackett-config | 0 .../dependencies.d/init-config | 0 .../s6-rc.d/init-jackett-config/run | 11 +++++++++++ .../s6-rc.d/init-jackett-config/type | 1 + .../s6-overlay/s6-rc.d/init-jackett-config/up | 1 + .../svc-jackett/dependencies.d/init-services | 0 .../s6-rc.d/svc-jackett/notification-fd | 1 + root/etc/s6-overlay/s6-rc.d/svc-jackett/run | 13 +++++++++++++ root/etc/s6-overlay/s6-rc.d/svc-jackett/type | 1 + .../user/contents.d/init-jackett-config | 0 .../s6-rc.d/user/contents.d/svc-jackett | 0 root/etc/services.d/jackett/run | 10 ---------- 20 files changed, 63 insertions(+), 67 deletions(-) delete mode 100644 root/etc/cont-init.d/30-config create mode 100644 root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-jackett-config create mode 100644 root/etc/s6-overlay/s6-rc.d/init-jackett-config/dependencies.d/init-config create mode 100755 root/etc/s6-overlay/s6-rc.d/init-jackett-config/run create mode 100644 root/etc/s6-overlay/s6-rc.d/init-jackett-config/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-jackett-config/up create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-jackett/dependencies.d/init-services create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-jackett/notification-fd create mode 100755 root/etc/s6-overlay/s6-rc.d/svc-jackett/run create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-jackett/type create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-jackett-config create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-jackett delete mode 100644 root/etc/services.d/jackett/run diff --git a/Dockerfile b/Dockerfile index 8d672bd..91c3f27 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,6 @@ -FROM ghcr.io/linuxserver/baseimage-ubuntu:focal +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-alpine:3.17 # set version label ARG BUILD_DATE @@ -8,16 +10,13 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA LABEL maintainer="thelamer" # environment settings -ARG DEBIAN_FRONTEND="noninteractive" ENV XDG_DATA_HOME="/config" \ XDG_CONFIG_HOME="/config" RUN \ echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y \ - jq \ - libicu66 && \ + apk --no-cache add \ + icu-libs && \ echo "**** install jackett ****" && \ mkdir -p \ /app/Jackett && \ @@ -27,19 +26,15 @@ RUN \ fi && \ curl -o \ /tmp/jacket.tar.gz -L \ - "https://github.com/Jackett/Jackett/releases/download/${JACKETT_RELEASE}/Jackett.Binaries.LinuxAMDx64.tar.gz" && \ + "https://github.com/Jackett/Jackett/releases/download/${JACKETT_RELEASE}/Jackett.Binaries.LinuxMuslAMDx64.tar.gz" && \ tar xf \ /tmp/jacket.tar.gz -C \ /app/Jackett --strip-components=1 && \ echo "**** fix for host id mapping error ****" && \ chown -R root:root /app/Jackett && \ echo "**** cleanup ****" && \ - apt-get clean && \ rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* \ - /var/log/* + /tmp/* # add local files COPY root/ / diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 8387190..3f48ae5 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,4 +1,6 @@ -FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-focal +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.17 # set version label ARG BUILD_DATE @@ -8,16 +10,13 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA LABEL maintainer="thelamer" # environment settings -ARG DEBIAN_FRONTEND="noninteractive" ENV XDG_DATA_HOME="/config" \ XDG_CONFIG_HOME="/config" RUN \ echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y \ - jq \ - libicu66 && \ + apk --no-cache add \ + icu-libs && \ echo "**** install jackett ****" && \ mkdir -p \ /app/Jackett && \ @@ -27,19 +26,15 @@ RUN \ fi && \ curl -o \ /tmp/jacket.tar.gz -L \ - "https://github.com/Jackett/Jackett/releases/download/${JACKETT_RELEASE}/Jackett.Binaries.LinuxARM64.tar.gz" && \ + "https://github.com/Jackett/Jackett/releases/download/${JACKETT_RELEASE}/Jackett.Binaries.LinuxMuslARM64.tar.gz" && \ tar xf \ /tmp/jacket.tar.gz -C \ /app/Jackett --strip-components=1 && \ echo "**** fix for host id mapping error ****" && \ chown -R root:root /app/Jackett && \ echo "**** cleanup ****" && \ - apt-get clean && \ rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* \ - /var/log/* + /tmp/* # add local files COPY root/ / diff --git a/Dockerfile.armhf b/Dockerfile.armhf index d931144..57ab6d4 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,4 +1,6 @@ -FROM ghcr.io/linuxserver/baseimage-ubuntu:arm32v7-focal +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.17 # set version label ARG BUILD_DATE @@ -8,16 +10,13 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA LABEL maintainer="thelamer" # environment settings -ARG DEBIAN_FRONTEND="noninteractive" ENV XDG_DATA_HOME="/config" \ XDG_CONFIG_HOME="/config" RUN \ echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y \ - jq \ - libicu66 && \ + apk --no-cache add \ + icu-libs && \ echo "**** install jackett ****" && \ mkdir -p \ /app/Jackett && \ @@ -27,19 +26,15 @@ RUN \ fi && \ curl -o \ /tmp/jacket.tar.gz -L \ - "https://github.com/Jackett/Jackett/releases/download/${JACKETT_RELEASE}/Jackett.Binaries.LinuxARM32.tar.gz" && \ + "https://github.com/Jackett/Jackett/releases/download/${JACKETT_RELEASE}/Jackett.Binaries.LinuxMuslARM32.tar.gz" && \ tar xf \ /tmp/jacket.tar.gz -C \ /app/Jackett --strip-components=1 && \ echo "**** fix for host id mapping error ****" && \ chown -R root:root /app/Jackett && \ echo "**** cleanup ****" && \ - apt-get clean && \ rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* \ - /var/log/* + /tmp/* # add local files COPY root/ / diff --git a/Jenkinsfile b/Jenkinsfile index 7207213..0b27a2a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -27,7 +27,7 @@ pipeline { DOCKERHUB_IMAGE = 'linuxserver/jackett' DEV_DOCKERHUB_IMAGE = 'lsiodev/jackett' PR_DOCKERHUB_IMAGE = 'lspipepr/jackett' - DIST_IMAGE = 'ubuntu' + DIST_IMAGE = 'alpine' MULTIARCH='true' CI='true' CI_WEB='true' diff --git a/README.md b/README.md index b7e4a0c..b9135e6 100644 --- a/README.md +++ b/README.md @@ -90,10 +90,10 @@ services: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - - "RUN_OPTS=" #optional + - RUN_OPTS= #optional volumes: - - :/config - - :/downloads + - /path/to/data:/config + - /path/to/blackhole:/downloads ports: - 9117:9117 restart: unless-stopped @@ -107,10 +107,10 @@ docker run -d \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ - -e RUN_OPTS="" `#optional` \ + -e RUN_OPTS= `#optional` \ -p 9117:9117 \ - -v :/config \ - -v :/downloads \ + -v /path/to/data:/config \ + -v /path/to/blackhole:/downloads \ --restart unless-stopped \ lscr.io/linuxserver/jackett:development @@ -126,7 +126,7 @@ Container images are configured using parameters passed at runtime (such as thos | `-e PUID=1000` | for UserID - see below for explanation | | `-e PGID=1000` | for GroupID - see below for explanation | | `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). | -| `-e RUN_OPTS=` | Optionally specify additional arguments to be passed. | +| `-e RUN_OPTS=` | Optionally specify additional arguments to be passed. | | `-v /config` | Where Jackett should store its config file. | | `-v /downloads` | Path to torrent blackhole. | @@ -239,6 +239,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **11.02.23:** - Rebase to Alpine 3.17. * **31.12.19:** - Rebase to Focal. * **31.12.19:** - Remove agressive startup chowning. * **23.03.19:** - Switching to new Base images, shift to arm32v7 tag. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 8c0884e..111a3a8 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -17,7 +17,7 @@ repo_vars: - DOCKERHUB_IMAGE = 'linuxserver/jackett' - DEV_DOCKERHUB_IMAGE = 'lsiodev/jackett' - PR_DOCKERHUB_IMAGE = 'lspipepr/jackett' - - DIST_IMAGE = 'ubuntu' + - DIST_IMAGE = 'alpine' - MULTIARCH='true' - CI='true' - CI_WEB='true' diff --git a/readme-vars.yml b/readme-vars.yml index 0fa3997..2a78d6c 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -30,8 +30,8 @@ param_env_vars: - { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London." } param_usage_include_vols: true param_volumes: - - { vol_path: "/config", vol_host_path: "", desc: "Where Jackett should store its config file." } - - { vol_path: "/downloads", vol_host_path: "", desc: "Path to torrent blackhole." } + - { vol_path: "/config", vol_host_path: "/path/to/data", desc: "Where Jackett should store its config file." } + - { vol_path: "/downloads", vol_host_path: "/path/to/blackhole", desc: "Path to torrent blackhole." } param_usage_include_ports: true param_ports: - { external_port: "9117", internal_port: "9117", port_desc: "WebUI" } @@ -41,7 +41,7 @@ cap_add_param: false # optional container parameters opt_param_usage_include_env: true opt_param_env_vars: - - { env_var: "RUN_OPTS", env_value: "", desc: "Optionally specify additional arguments to be passed." } + - { env_var: "RUN_OPTS", env_value: "", desc: "Optionally specify additional arguments to be passed." } opt_param_usage_include_vols: false opt_param_usage_include_ports: false opt_param_device_map: false @@ -58,6 +58,7 @@ app_setup_block: | # changelog changelogs: + - { date: "11.02.23:", desc: "Rebase to Alpine 3.17." } - { date: "31.12.19:", desc: "Rebase to Focal." } - { date: "31.12.19:", desc: "Remove agressive startup chowning." } - { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." } diff --git a/root/etc/cont-init.d/30-config b/root/etc/cont-init.d/30-config deleted file mode 100644 index f5251c1..0000000 --- a/root/etc/cont-init.d/30-config +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/with-contenv bash - -chown -R abc:abc \ - /config - -if [ -z ${AUTO_UPDATE+x} ] || [ "${AUTO_UPDATE}" == "true" ]; then - chown -R abc:abc \ - /app/Jackett -fi \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-jackett-config b/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-jackett-config new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/init-jackett-config/dependencies.d/init-config b/root/etc/s6-overlay/s6-rc.d/init-jackett-config/dependencies.d/init-config new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/init-jackett-config/run b/root/etc/s6-overlay/s6-rc.d/init-jackett-config/run new file mode 100755 index 0000000..51607f6 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-jackett-config/run @@ -0,0 +1,11 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +if [[ -z ${AUTO_UPDATE+x} ]] || [[ "${AUTO_UPDATE}" == "true" ]]; then + lsiown -R abc:abc \ + /app/Jackett +fi + +# permissions +lsiown -R abc:abc \ + /config diff --git a/root/etc/s6-overlay/s6-rc.d/init-jackett-config/type b/root/etc/s6-overlay/s6-rc.d/init-jackett-config/type new file mode 100644 index 0000000..bdd22a1 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-jackett-config/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-jackett-config/up b/root/etc/s6-overlay/s6-rc.d/init-jackett-config/up new file mode 100644 index 0000000..47c4b74 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-jackett-config/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-jackett-config/run diff --git a/root/etc/s6-overlay/s6-rc.d/svc-jackett/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-jackett/dependencies.d/init-services new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-jackett/notification-fd b/root/etc/s6-overlay/s6-rc.d/svc-jackett/notification-fd new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-jackett/notification-fd @@ -0,0 +1 @@ +3 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-jackett/run b/root/etc/s6-overlay/s6-rc.d/svc-jackett/run new file mode 100755 index 0000000..2cafdaa --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-jackett/run @@ -0,0 +1,13 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +if [[ -z ${AUTO_UPDATE+x} ]] || [[ "${AUTO_UPDATE}" == "true" ]]; then + COMMAND="/app/Jackett/jackett_launcher.sh" +else + COMMAND="/app/Jackett/jackett --NoUpdates" +fi + + +exec \ + s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 9117" \ + s6-setuidgid abc ${COMMAND} ${RUN_OPTS} diff --git a/root/etc/s6-overlay/s6-rc.d/svc-jackett/type b/root/etc/s6-overlay/s6-rc.d/svc-jackett/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-jackett/type @@ -0,0 +1 @@ +longrun diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-jackett-config b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-jackett-config new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-jackett b/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-jackett new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/services.d/jackett/run b/root/etc/services.d/jackett/run deleted file mode 100644 index a88f793..0000000 --- a/root/etc/services.d/jackett/run +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/with-contenv bash - -if [ -z ${AUTO_UPDATE+x} ] || [ "${AUTO_UPDATE}" == "true" ]; then - COMMAND="/app/Jackett/jackett_launcher.sh" -else - COMMAND="/app/Jackett/jackett --NoUpdates" -fi - -exec \ - s6-setuidgid abc ${COMMAND} ${RUN_OPTS}