Merge pull request #104 from linuxserver/master-wheel

update formatting, add lsio wheel index
This commit is contained in:
Eric Nemchik
2021-05-14 22:20:23 -05:00
committed by GitHub
7 changed files with 195 additions and 178 deletions
+54 -54
View File
@@ -13,60 +13,60 @@ ENV HOME="/config" \
PYTHONIOENCODING=utf-8
RUN \
echo "***** install gnupg ****" && \
apt-get update && \
apt-get install -y \
gnupg && \
echo "***** add sabnzbd repositories ****" && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 0x98703123E0F52B2BE16D586EF13930B14BB9F05F && \
echo "deb http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb-src http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb-src http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "**** install packages ****" && \
apt-get update && \
apt-get install -y \
libffi-dev \
libssl-dev \
p7zip-full \
par2-tbb \
python3 \
python3-cryptography \
python3-distutils \
python3-pip \
unrar && \
if [ -z ${SABNZBD_VERSION+x} ]; then \
SABNZBD_VERSION=$(curl -s https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
mkdir -p /app/sabnzbd && \
curl -o \
/tmp/sabnzbd.tar.gz -L \
"https://github.com/sabnzbd/sabnzbd/releases/download/${SABNZBD_VERSION}/SABnzbd-${SABNZBD_VERSION}-src.tar.gz" && \
tar xf \
/tmp/sabnzbd.tar.gz -C \
/app/sabnzbd --strip-components=1 && \
cd /app/sabnzbd && \
pip3 install -U --no-cache-dir pip && \
pip install -U --no-cache-dir \
apprise \
pynzb \
requests && \
pip install -U --no-cache-dir -r requirements.txt && \
echo "**** cleanup ****" && \
ln -s \
/usr/bin/python3 \
/usr/bin/python && \
apt-get purge --auto-remove -y \
libffi-dev \
libssl-dev \
python3-pip && \
apt-get clean && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/* \
$HOME/.cache
echo "***** install gnupg ****" && \
apt-get update && \
apt-get install -y \
gnupg && \
echo "***** add sabnzbd repositories ****" && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 0x98703123E0F52B2BE16D586EF13930B14BB9F05F && \
echo "deb http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb-src http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb-src http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "**** install packages ****" && \
apt-get update && \
apt-get install -y \
libffi-dev \
libssl-dev \
p7zip-full \
par2-tbb \
python3 \
python3-cryptography \
python3-distutils \
python3-pip \
unrar && \
if [ -z ${SABNZBD_VERSION+x} ]; then \
SABNZBD_VERSION=$(curl -s https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
mkdir -p /app/sabnzbd && \
curl -o \
/tmp/sabnzbd.tar.gz -L \
"https://github.com/sabnzbd/sabnzbd/releases/download/${SABNZBD_VERSION}/SABnzbd-${SABNZBD_VERSION}-src.tar.gz" && \
tar xf \
/tmp/sabnzbd.tar.gz -C \
/app/sabnzbd --strip-components=1 && \
cd /app/sabnzbd && \
pip3 install -U --no-cache-dir pip && \
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/ubuntu/ \
apprise \
pynzb \
requests && \
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/ubuntu/ -r requirements.txt && \
echo "**** cleanup ****" && \
ln -s \
/usr/bin/python3 \
/usr/bin/python && \
apt-get purge --auto-remove -y \
libffi-dev \
libssl-dev \
python3-pip && \
apt-get clean && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/* \
$HOME/.cache
# add local files
COPY root/ /
+54 -54
View File
@@ -13,60 +13,60 @@ ENV HOME="/config" \
PYTHONIOENCODING=utf-8
RUN \
echo "***** install gnupg ****" && \
apt-get update && \
apt-get install -y \
gnupg && \
echo "***** add sabnzbd repositories ****" && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 0x98703123E0F52B2BE16D586EF13930B14BB9F05F && \
echo "deb http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb-src http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb-src http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "**** install packages ****" && \
apt-get update && \
apt-get install -y \
libffi-dev \
libssl-dev \
p7zip-full \
par2-tbb \
python3 \
python3-cryptography \
python3-distutils \
python3-pip \
unrar && \
if [ -z ${SABNZBD_VERSION+x} ]; then \
SABNZBD_VERSION=$(curl -s https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
mkdir -p /app/sabnzbd && \
curl -o \
/tmp/sabnzbd.tar.gz -L \
"https://github.com/sabnzbd/sabnzbd/releases/download/${SABNZBD_VERSION}/SABnzbd-${SABNZBD_VERSION}-src.tar.gz" && \
tar xf \
/tmp/sabnzbd.tar.gz -C \
/app/sabnzbd --strip-components=1 && \
cd /app/sabnzbd && \
pip3 install -U --no-cache-dir pip && \
pip install -U --no-cache-dir \
apprise \
pynzb \
requests && \
pip install -U --no-cache-dir -r requirements.txt && \
echo "**** cleanup ****" && \
ln -s \
/usr/bin/python3 \
/usr/bin/python && \
apt-get purge --auto-remove -y \
libffi-dev \
libssl-dev \
python3-pip && \
apt-get clean && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/* \
$HOME/.cache
echo "***** install gnupg ****" && \
apt-get update && \
apt-get install -y \
gnupg && \
echo "***** add sabnzbd repositories ****" && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 0x98703123E0F52B2BE16D586EF13930B14BB9F05F && \
echo "deb http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb-src http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb-src http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "**** install packages ****" && \
apt-get update && \
apt-get install -y \
libffi-dev \
libssl-dev \
p7zip-full \
par2-tbb \
python3 \
python3-cryptography \
python3-distutils \
python3-pip \
unrar && \
if [ -z ${SABNZBD_VERSION+x} ]; then \
SABNZBD_VERSION=$(curl -s https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
mkdir -p /app/sabnzbd && \
curl -o \
/tmp/sabnzbd.tar.gz -L \
"https://github.com/sabnzbd/sabnzbd/releases/download/${SABNZBD_VERSION}/SABnzbd-${SABNZBD_VERSION}-src.tar.gz" && \
tar xf \
/tmp/sabnzbd.tar.gz -C \
/app/sabnzbd --strip-components=1 && \
cd /app/sabnzbd && \
pip3 install -U --no-cache-dir pip && \
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/ubuntu/ \
apprise \
pynzb \
requests && \
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/ubuntu/ -r requirements.txt && \
echo "**** cleanup ****" && \
ln -s \
/usr/bin/python3 \
/usr/bin/python && \
apt-get purge --auto-remove -y \
libffi-dev \
libssl-dev \
python3-pip && \
apt-get clean && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/* \
$HOME/.cache
# add local files
COPY root/ /
+57 -57
View File
@@ -13,63 +13,63 @@ ENV HOME="/config" \
PYTHONIOENCODING=utf-8
RUN \
echo "***** install gnupg ****" && \
apt-get update && \
apt-get install -y \
gnupg && \
echo "***** add sabnzbd repositories ****" && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 0x98703123E0F52B2BE16D586EF13930B14BB9F05F && \
echo "deb http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb-src http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb-src http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "**** install packages ****" && \
apt-get update && \
apt-get install -y \
libffi-dev \
libssl-dev \
p7zip-full \
par2-tbb \
python3 \
python3-cryptography \
python3-distutils \
python3-pip \
rustc \
unrar && \
if [ -z ${SABNZBD_VERSION+x} ]; then \
SABNZBD_VERSION=$(curl -s https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
mkdir -p /app/sabnzbd && \
curl -o \
/tmp/sabnzbd.tar.gz -L \
"https://github.com/sabnzbd/sabnzbd/releases/download/${SABNZBD_VERSION}/SABnzbd-${SABNZBD_VERSION}-src.tar.gz" && \
tar xf \
/tmp/sabnzbd.tar.gz -C \
/app/sabnzbd --strip-components=1 && \
cd /app/sabnzbd && \
pip3 install -U --no-cache-dir pip && \
pip install -U --no-cache-dir \
apprise \
pynzb \
requests && \
pip install -U --no-cache-dir -r requirements.txt && \
echo "**** cleanup ****" && \
ln -s \
/usr/bin/python3 \
/usr/bin/python && \
apt-get purge --auto-remove -y \
libffi-dev \
libssl-dev \
python3-pip \
rustc && \
apt-get clean && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/* \
$HOME/.cache \
$HOME/.cargo
echo "***** install gnupg ****" && \
apt-get update && \
apt-get install -y \
gnupg && \
echo "***** add sabnzbd repositories ****" && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 0x98703123E0F52B2BE16D586EF13930B14BB9F05F && \
echo "deb http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb-src http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "deb-src http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \
echo "**** install packages ****" && \
apt-get update && \
apt-get install -y \
libffi-dev \
libssl-dev \
p7zip-full \
par2-tbb \
python3 \
python3-cryptography \
python3-distutils \
python3-pip \
rustc \
unrar && \
if [ -z ${SABNZBD_VERSION+x} ]; then \
SABNZBD_VERSION=$(curl -s https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
mkdir -p /app/sabnzbd && \
curl -o \
/tmp/sabnzbd.tar.gz -L \
"https://github.com/sabnzbd/sabnzbd/releases/download/${SABNZBD_VERSION}/SABnzbd-${SABNZBD_VERSION}-src.tar.gz" && \
tar xf \
/tmp/sabnzbd.tar.gz -C \
/app/sabnzbd --strip-components=1 && \
cd /app/sabnzbd && \
pip3 install -U --no-cache-dir pip && \
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/ubuntu/ \
apprise \
pynzb \
requests && \
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/ubuntu/ -r requirements.txt && \
echo "**** cleanup ****" && \
ln -s \
/usr/bin/python3 \
/usr/bin/python && \
apt-get purge --auto-remove -y \
libffi-dev \
libssl-dev \
python3-pip \
rustc && \
apt-get clean && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/* \
$HOME/.cache \
$HOME/.cargo
# add local files
COPY root/ /
+13 -4
View File
@@ -70,12 +70,20 @@ This image provides various versions that are available via tags. `latest` tag u
Initial setup is done from the http port.
In Sabnzbd gui settings, under `Folders`, make sure to set the `Completed Download Folder` as `/downloads` and the `Temporary Download Folder` as `/incomplete-downloads`
Https access for sabnzbd needs to be enabled in either the intial setup wizard or in the configure settings of the webui, be sure to use 9090 as port for https.
See here for info on some of the switch settings for sabnzbd https://sabnzbd.org/wiki/configuration/2.3/switches .
### Download folders
In Sabnzbd gui settings, under `Folders`, make sure to set the `Completed Download Folder` as `/downloads` and the `Temporary Download Folder` as `/incomplete-downloads`
We have set `/incomplete-downloads` and `/downloads` as ***optional paths***, this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content.
Use the optional paths if you dont understand, or dont want hardlinks/atomic moves.
The folks over at servarr.com wrote a good [write-up](https://wiki.servarr.com/Docker_Guide#Consistent_and_well_planned_paths) on how to get started with this.
## Usage
Here are some example snippets to help you get started creating a container.
@@ -97,7 +105,7 @@ services:
- TZ=Europe/London
volumes:
- /path/to/data:/config
- /path/to/downloads:/downloads
- /path/to/downloads:/downloads #optional
- /path/to/incomplete/downloads:/incomplete-downloads #optional
ports:
- 8080:8080
@@ -116,7 +124,7 @@ docker run -d \
-p 8080:8080 \
-p 9090:9090 \
-v /path/to/data:/config \
-v /path/to/downloads:/downloads \
-v /path/to/downloads:/downloads `#optional` \
-v /path/to/incomplete/downloads:/incomplete-downloads `#optional` \
--restart unless-stopped \
ghcr.io/linuxserver/sabnzbd
@@ -246,6 +254,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **14.05.21:** - Use linuxserver.io wheel index for pip packages.
* **12.02.21:** - Clean up rust/cargo and pip cache.
* **17.08.20:** - Run from source with python3 instead of ppa, remove python2 completely, symlink `python` to `python3`.
* **02.01.20:** - Add python3 on top of python2 to image during transition.
+11 -3
View File
@@ -30,7 +30,6 @@ param_env_vars:
param_usage_include_vols: true
param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/data", desc: "Local path for sabnzbd config files." }
- { vol_path: "/downloads", vol_host_path: "/path/to/downloads", desc: "Local path for finished downloads." }
param_usage_include_ports: true
param_ports:
- { external_port: "8080", internal_port: "8080", port_desc: "HTTP port for the WebUI." }
@@ -42,6 +41,7 @@ cap_add_param: false
opt_param_usage_include_env: false
opt_param_usage_include_vols: true
opt_param_volumes:
- { vol_path: "/downloads", vol_host_path: "/path/to/downloads", desc: "Local path for finished downloads." }
- { vol_path: "/incomplete-downloads", vol_host_path: "/path/to/incomplete/downloads", desc: "Local path for incomplete-downloads." }
opt_param_usage_include_ports: false
opt_param_device_map: false
@@ -53,15 +53,23 @@ app_setup_block_enabled: true
app_setup_block: |
Initial setup is done from the http port.
In Sabnzbd gui settings, under `Folders`, make sure to set the `Completed Download Folder` as `/downloads` and the `Temporary Download Folder` as `/incomplete-downloads`
Https access for sabnzbd needs to be enabled in either the intial setup wizard or in the configure settings of the webui, be sure to use 9090 as port for https.
See here for info on some of the switch settings for sabnzbd https://sabnzbd.org/wiki/configuration/2.3/switches .
### Download folders
In Sabnzbd gui settings, under `Folders`, make sure to set the `Completed Download Folder` as `/downloads` and the `Temporary Download Folder` as `/incomplete-downloads`
We have set `/incomplete-downloads` and `/downloads` as ***optional paths***, this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content.
Use the optional paths if you dont understand, or dont want hardlinks/atomic moves.
The folks over at servarr.com wrote a good [write-up](https://wiki.servarr.com/Docker_Guide#Consistent_and_well_planned_paths) on how to get started with this.
# changelog
changelogs:
- { date: "14.05.21:", desc: "Use linuxserver.io wheel index for pip packages." }
- { date: "12.02.21:", desc: "Clean up rust/cargo and pip cache." }
- { date: "17.08.20:", desc: "Run from source with python3 instead of ppa, remove python2 completely, symlink `python` to `python3`." }
- { date: "02.01.20:", desc: "Add python3 on top of python2 to image during transition." }
+4 -4
View File
@@ -2,11 +2,11 @@
# make folders
mkdir -p \
/downloads \
/incomplete-downloads
/downloads \
/incomplete-downloads
# permissions
chown abc:abc \
/downloads \
/incomplete-downloads
/downloads \
/incomplete-downloads
+2 -2
View File
@@ -1,7 +1,7 @@
#!/usr/bin/with-contenv bash
exec \
s6-setuidgid abc python3 /app/sabnzbd/SABnzbd.py \
--config-file /config --server 0.0.0.0:8080
s6-setuidgid abc python3 /app/sabnzbd/SABnzbd.py \
--config-file /config --server 0.0.0.0:8080