Compare commits

...
Author SHA1 Message Date
LinuxServer-CI c88826accc Bot Updating Templated Files 2022-11-30 19:30:37 +01:00
LinuxServer-CI 293265827e Bot Updating Templated Files 2022-11-30 19:29:10 +01:00
LinuxServer-CI e46461be88 Bot Updating Templated Files 2022-11-30 19:27:53 +01:00
LinuxServer-CI b81e698322 Bot Updating Package Versions 2022-11-13 03:16:31 -06:00
LinuxServer-CI 3650b5db69 Bot Updating Templated Files 2022-11-13 03:13:32 -06:00
LinuxServer-CI 516d3bc0e1 Bot Updating Package Versions 2022-11-06 10:16:04 +01:00
LinuxServer-CI 87f3709526 Bot Updating Package Versions 2022-10-30 04:14:41 -05:00
LinuxServer-CI 329ae2b887 Bot Updating Package Versions 2022-09-25 04:15:40 -05:00
LinuxServer-CI b9c99e04d0 Bot Updating Templated Files 2022-09-18 11:13:51 +02:00
LinuxServer-CI 483194ec49 Bot Updating Package Versions 2022-09-04 04:13:45 -05:00
LinuxServer-CI 30e2b8138d Bot Updating Package Versions 2022-08-23 18:35:23 +02:00
LinuxServer-CI 6f564f6bf5 Bot Updating Package Versions 2022-08-21 04:13:27 -05:00
LinuxServer-CI 8de6e62613 Bot Updating Package Versions 2022-08-09 15:28:44 -05:00
LinuxServer-CI 53177986b4 Bot Updating Package Versions 2022-08-02 14:21:14 -05:00
LinuxServer-CI 69648e4e54 Bot Updating Package Versions 2022-07-31 04:12:56 -05:00
LinuxServer-CI 429dc6a09c Bot Updating Package Versions 2022-07-24 11:13:21 +02:00
LinuxServer-CI 70dbea1b35 Bot Updating Package Versions 2022-07-17 11:13:11 +02:00
LinuxServer-CI f5e1852c28 Bot Updating Package Versions 2022-07-09 11:23:24 +02:00
LinuxServer-CI 10616757ab Bot Updating Package Versions 2022-07-03 04:13:31 -05:00
LinuxServer-CI 423a6401c7 Bot Updating Package Versions 2022-05-22 04:13:15 -05:00
LinuxServer-CI 21e1506643 Bot Updating Package Versions 2022-05-08 11:13:37 +02:00
LinuxServer-CI e32c640c4f Bot Updating Templated Files 2022-05-02 18:37:06 +02:00
LinuxServer-CI 447b095d7e Bot Updating Package Versions 2022-05-01 04:17:36 -05:00
LinuxServer-CI c2d06a9d36 Bot Updating Templated Files 2022-05-01 04:14:46 -05:00
LinuxServer-CI 2e2aa3caad Bot Updating Templated Files 2022-05-01 04:13:26 -05:00
LinuxServer-CI 587a5612ec Bot Updating Package Versions 2022-04-19 13:10:28 -05:00
LinuxServer-CI a1c5c90586 Bot Updating Templated Files 2022-04-19 13:07:34 -05:00
LinuxServer-CI 7ffa7e5683 Bot Updating Templated Files 2022-04-19 20:06:06 +02:00
AdamandGitHub 3839fada56 Merge pull request #16 from linuxserver/dev-alpine 2022-04-19 19:04:52 +01:00
TheSpad d4d6ea92ae Actually change the baseimages for arm 2022-04-18 22:16:44 +01:00
TheSpad 076309b476 Rebase to Alpine 3.15 2022-04-18 22:14:13 +01:00
LinuxServer-CI e33620dad9 Bot Updating Package Versions 2022-04-17 11:13:56 +02:00
LinuxServer-CI dba4c0a5c0 Bot Updating Package Versions 2022-04-03 04:13:32 -05:00
LinuxServer-CI fce7be9c78 Bot Updating Package Versions 2022-03-24 02:23:29 -05:00
LinuxServer-CI 0e10ccb722 Bot Updating Package Versions 2022-03-13 04:12:49 -05:00
LinuxServer-CI ff2bff29dd Bot Updating Package Versions 2022-03-04 09:29:21 +01:00
LinuxServer-CI 11f0d22b86 Bot Updating Package Versions 2022-02-27 10:12:54 +01:00
LinuxServer-CI cc67628e6b Bot Updating Package Versions 2022-02-06 10:11:59 +01:00
LinuxServer-CI e35e2f9efd Bot Updating Package Versions 2022-01-16 10:13:12 +01:00
LinuxServer-CI 1e891332c0 Bot Updating Package Versions 2021-12-26 10:12:37 +01:00
LinuxServer-CI d4624f0da3 Bot Updating Package Versions 2021-12-19 10:16:19 +01:00
LinuxServer-CI ebf4267dce Bot Updating Templated Files 2021-12-19 10:13:28 +01:00
LinuxServer-CI fab68c6812 Bot Updating Templated Files 2021-12-19 10:12:25 +01:00
LinuxServer-CI 3cff9c4a73 Bot Updating Package Versions 2021-12-01 21:26:24 +01:00
LinuxServer-CI 65973d94d2 Bot Updating Package Versions 2021-11-07 10:12:36 +01:00
LinuxServer-CI ca04e506c0 Bot Updating Package Versions 2021-10-17 11:11:35 +02:00
LinuxServer-CI 5dcc0c7d6b Bot Updating Package Versions 2021-10-03 11:15:55 +02:00
LinuxServer-CI 561358af55 Bot Updating Templated Files 2021-10-03 11:12:03 +02:00
LinuxServer-CI 58a19d405d Bot Updating Templated Files 2021-10-03 11:10:55 +02:00
LinuxServer-CI ef56395270 Bot Updating Package Versions 2021-09-25 11:21:32 +02:00
LinuxServer-CI 563f30d925 Bot Updating Package Versions 2021-09-19 11:11:21 +02:00
LinuxServer-CI 7be5eb37ed Bot Updating Package Versions 2021-09-05 11:11:10 +02:00
LinuxServer-CI a3f05b4c5d Bot Updating Templated Files 2021-08-27 18:32:52 +02:00
LinuxServer-CI 6a3a677699 Bot Updating Package Versions 2021-08-22 11:13:38 +02:00
LinuxServer-CI c9b9f443f2 Bot Updating Package Versions 2021-08-05 18:35:23 +02:00
LinuxServer-CI be239cbd34 Bot Updating Package Versions 2021-08-01 11:12:50 +02:00
LinuxServer-CI 0efc76d68f Bot Updating Package Versions 2021-07-25 11:13:20 +02:00
LinuxServer-CI a82c5b59f9 Bot Updating Package Versions 2021-07-10 10:31:08 +00:00
LinuxServer-CI 7a606ecdea Bot Updating Package Versions 2021-07-04 05:15:02 -04:00
LinuxServer-CI 7798afa495 Bot Updating Templated Files 2021-07-04 05:11:35 -04:00
LinuxServer-CI fb241a21e0 Bot Updating Templated Files 2021-07-04 05:10:32 -04:00
LinuxServer-CI b2b7669af9 Bot Updating Package Versions 2021-06-13 10:18:12 +01:00
LinuxServer-CI cf6ebee08d Bot Updating Package Versions 2021-05-23 07:41:19 +01:00
LinuxServer-CI 1b99f37963 Bot Updating Package Versions 2021-05-02 10:23:36 +01:00
LinuxServer-CI 74454c6a34 Bot Updating Package Versions 2021-04-22 10:44:11 +00:00
LinuxServer-CI 7373365adc Bot Updating Package Versions 2021-04-18 05:25:23 -04:00
LinuxServer-CI 100563b732 Bot Updating Templated Files 2021-04-18 10:18:20 +01:00
LinuxServer-CI d29f2859fb Bot Updating Templated Files 2021-04-18 10:17:13 +01:00
LinuxServer-CI 8cbcc0e9a9 Bot Updating Package Versions 2021-04-11 10:25:28 +01:00
LinuxServer-CI 5819a6452f Bot Updating Package Versions 2021-04-04 09:23:41 +00:00
LinuxServer-CI f15d0ffedb Bot Updating Package Versions 2021-03-28 05:23:03 -04:00
LinuxServer-CI d57704ac77 Bot Updating Package Versions 2021-03-20 14:42:14 -04:00
23 changed files with 562 additions and 428 deletions
Executable
+20
View File
@@ -0,0 +1,20 @@
# This file is globally distributed to all container image projects from
# https://github.com/linuxserver/docker-jenkins-builder/blob/master/.editorconfig
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
# trim_trailing_whitespace may cause unintended issues and should not be globally set true
trim_trailing_whitespace = false
[{Dockerfile*,**.yml}]
indent_style = space
indent_size = 2
[{**.sh,root/etc/cont-init.d/**,root/etc/services.d/**}]
indent_style = space
indent_size = 4
+7 -6
View File
@@ -4,7 +4,7 @@
* While contributing make sure to make all your changes before creating a Pull Request, as our pipeline builds each commit after the PR is open.
* Read, and fill the Pull Request template
* If this is a fix for a typo in code or documentation in the README please file an issue
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn)
@@ -24,7 +24,7 @@
## Readme
If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit.
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-nzbhydra2/edit/master/readme-vars.yml).
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-nzbhydra2/edit/dev/readme-vars.yml).
These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play.
Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-nzbhydra2)
@@ -96,7 +96,7 @@ If you are proposing additional packages to be added, ensure that you added the
### Testing your changes
```
```bash
git clone https://github.com/linuxserver/docker-nzbhydra2.git
cd docker-nzbhydra2
docker build \
@@ -106,15 +106,16 @@ docker build \
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```
```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset
```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Update the chagelog
## Update the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-nzbhydra2/tree/master/root), add an entry to the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-nzbhydra2/tree/dev/root), add an entry to the changelog
```yml
changelogs:
-40
View File
@@ -1,40 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
---
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support. --->
<!--- Provide a general summary of the bug in the Title above -->
------------------------------
## Expected Behavior
<!--- Tell us what should happen -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Steps to Reproduce
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
<!--- reproduce this bug. Include code to reproduce, if relevant -->
1.
2.
3.
4.
## Environment
**OS:**
**CPU architecture:** x86_64/arm32/arm64
**How docker service was installed:**
<!--- ie. from the official docker repo, from the distro repo, nas OS provided, etc. -->
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
## Command used to create docker container (run/create/compose/screenshot)
<!--- Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container -->
## Docker logs
<!--- Provide a full docker log, output of "docker logs nzbhydra2" -->
+77
View File
@@ -0,0 +1,77 @@
# Based on the issue template
name: Bug report
description: Create a report to help us improve
title: "[BUG] <title>"
labels: [Bug]
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
description: Tell us what happens instead of the expected behavior.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: Tell us what should happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. In this environment...
2. With this config...
3. Run '...'
4. See error...
validations:
required: true
- type: textarea
attributes:
label: Environment
description: |
examples:
- **OS**: Ubuntu 20.04
- **How docker service was installed**: distro's packagemanager
value: |
- OS:
- How docker service was installed:
render: markdown
validations:
required: false
- type: dropdown
attributes:
label: CPU architecture
options:
- x86-64
- arm64
- armhf
validations:
required: true
- type: textarea
attributes:
label: Docker creation
description: |
Command used to create docker container
Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container
render: bash
validations:
required: true
- type: textarea
attributes:
description: |
Provide a full docker log, output of "docker logs linuxserver.io"
label: Container logs
placeholder: |
Output of `docker logs linuxserver.io`
render: bash
validations:
required: true
-25
View File
@@ -1,25 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
---
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support. --->
<!--- If this acts as a feature request please ask yourself if this modification is something the whole userbase will benefit from --->
<!--- If this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
<!--- Provide a general summary of the request in the Title above -->
------------------------------
## Desired Behavior
<!--- Tell us what should happen -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Alternatives Considered
<!--- Tell us what other options you have tried or considered -->
+31
View File
@@ -0,0 +1,31 @@
# Based on the issue template
name: Feature request
description: Suggest an idea for this project
title: "[FEAT] <title>"
labels: [enhancement]
body:
- type: checkboxes
attributes:
label: Is this a new feature request?
description: Please search to see if a feature request already exists.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Wanted change
description: Tell us what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Reason for change
description: Justify your request, why do you want it, what is the benefit.
validations:
required: true
- type: textarea
attributes:
label: Proposed code change
description: Do you have a potential code change in mind?
validations:
required: false
+2 -2
View File
@@ -6,7 +6,7 @@
<!--- Before submitting a pull request please check the following -->
<!--- If this is a fix for a typo in code or documentation in the README please file an issue and let us sort it out we do not need a PR -->
<!--- If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR -->
<!--- Ask yourself if this modification is something the whole userbase will benefit from, if this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
<!--- That if the PR is addressing an existing issue include, closes #<issue number> , in the body of the PR commit message -->
<!--- You have included links to any files / patches etc your PR may be using in the body of the PR commit message -->
@@ -21,7 +21,7 @@
------------------------------
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-nzbhydra2/blob/master/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-nzbhydra2/blob/dev/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
------------------------------
+7 -3
View File
@@ -7,7 +7,7 @@ jobs:
external-trigger-dev:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v3.1.0
- name: External Trigger
if: github.ref == 'refs/heads/dev'
@@ -48,8 +48,12 @@ jobs:
| jq -r '.config.digest')
image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/blobs/${digest}" \
| jq -r '.container_config')
"https://ghcr.io/v2/${image}/blobs/${digest}")
if [[ $(echo $image_info | jq -r '.container_config') == "null" ]]; then
image_info=$(echo $image_info | jq -r '.config')
else
image_info=$(echo $image_info | jq -r '.container_config')
fi
IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}')
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
if [ -z "${IMAGE_VERSION}" ]; then
@@ -9,7 +9,7 @@ jobs:
external-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v3.1.0
with:
fetch-depth: '0'
+2 -2
View File
@@ -8,6 +8,6 @@ jobs:
steps:
- uses: actions/first-interaction@v1
with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-nzbhydra2/blob/master/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-nzbhydra2/blob/master/.github/ISSUE_TEMPLATE/issue.feature.md) issue templates!'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-nzbhydra2/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!'
issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-nzbhydra2/blob/dev/.github/ISSUE_TEMPLATE/issue.bug.yml) or [feature](https://github.com/linuxserver/docker-nzbhydra2/blob/dev/.github/ISSUE_TEMPLATE/issue.feature.yml) issue templates!'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-nzbhydra2/blob/dev/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}
+1 -1
View File
@@ -7,7 +7,7 @@ jobs:
package-trigger-dev:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v3.1.0
- name: Package Trigger
if: github.ref == 'refs/heads/dev'
@@ -9,7 +9,7 @@ jobs:
package-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v3.1.0
with:
fetch-depth: '0'
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v1
- uses: actions/stale@v6.0.1
with:
stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
+33 -30
View File
@@ -1,44 +1,47 @@
FROM ghcr.io/linuxserver/baseimage-ubuntu:bionic
FROM ghcr.io/linuxserver/baseimage-alpine:3.15
# set version label
ARG BUILD_DATE
ARG VERSION
ARG NZBHYDRA2_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca,nemchik"
LABEL maintainer="nemchik"
# environment settings
ARG DEBIAN_FRONTEND="noninteractive"
ENV NZBHYDRA2_RELEASE_TYPE="Pre-Release"
RUN \
echo "**** install packages ****" && \
apt-get update && \
apt-get install -y \
curl \
jq \
unzip && \
apt-get install --no-install-recommends -y \
openjdk-11-jre-headless \
python3 && \
echo "**** install nzbhydra2 ****" && \
if [ -z ${NZBHYDRA2_RELEASE+x} ]; then \
NZBHYDRA2_RELEASE=$(curl -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases" \
| jq -r '.[0] | .tag_name'); \
fi && \
NZBHYDRA2_VER=${NZBHYDRA2_RELEASE#v} && \
curl -o \
/tmp/nzbhydra2.zip -L \
"https://github.com/theotherp/nzbhydra2/releases/download/v${NZBHYDRA2_VER}/nzbhydra2-${NZBHYDRA2_VER}-linux.zip" && \
mkdir -p /app/nzbhydra2/bin && \
unzip /tmp/nzbhydra2.zip -d /app/nzbhydra2/bin && \
chmod +x /app/nzbhydra2/bin/nzbhydra2wrapperPy3.py && \
echo "ReleaseType=${NZBHYDRA2_RELEASE_TYPE}\nPackageVersion=${VERSION}\nPackageAuthor=linuxserver.io" > /app/nzbhydra2/package_info && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
echo "**** install packages ****" && \
apk add -U --no-cache --virtual=build-dependencies \
unzip && \
apk add -U --no-cache \
curl \
jq \
openjdk11-jre-headless \
python3 && \
echo "**** install nzbhydra2 ****" && \
if [ -z ${NZBHYDRA2_RELEASE+x} ]; then \
NZBHYDRA2_RELEASE=$(curl -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases" \
| jq -r '.[0] | .tag_name'); \
fi && \
NZBHYDRA2_VER=${NZBHYDRA2_RELEASE#v} && \
curl -o \
/tmp/nzbhydra2.zip -L \
"https://github.com/theotherp/nzbhydra2/releases/download/v${NZBHYDRA2_VER}/nzbhydra2-${NZBHYDRA2_VER}-linux.zip" && \
mkdir -p /app/nzbhydra2/bin && \
unzip /tmp/nzbhydra2.zip -d /app/nzbhydra2/bin && \
rm -rf \
/app/nzbhydra2/bin/upstart/ \
/app/nzbhydra2/bin/rc.d/ \
/app/nzbhydra2/bin/sysv/ \
/app/nzbhydra2/bin/systemd/ && \
chmod +x /app/nzbhydra2/bin/nzbhydra2wrapperPy3.py && \
echo -e "ReleaseType=${NZBHYDRA2_RELEASE_TYPE}\nPackageVersion=${VERSION}\nPackageAuthor=linuxserver.io" > /app/nzbhydra2/package_info && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/*
# copy local files
COPY root/ /
+33 -30
View File
@@ -1,44 +1,47 @@
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-bionic
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.15
# set version label
ARG BUILD_DATE
ARG VERSION
ARG NZBHYDRA2_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca,nemchik"
LABEL maintainer="nemchik"
# environment settings
ARG DEBIAN_FRONTEND="noninteractive"
ENV NZBHYDRA2_RELEASE_TYPE="Pre-Release"
RUN \
echo "**** install packages ****" && \
apt-get update && \
apt-get install -y \
curl \
jq \
unzip && \
apt-get install --no-install-recommends -y \
openjdk-11-jre-headless \
python3 && \
echo "**** install nzbhydra2 ****" && \
if [ -z ${NZBHYDRA2_RELEASE+x} ]; then \
NZBHYDRA2_RELEASE=$(curl -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases" \
| jq -r '.[0] | .tag_name'); \
fi && \
NZBHYDRA2_VER=${NZBHYDRA2_RELEASE#v} && \
curl -o \
/tmp/nzbhydra2.zip -L \
"https://github.com/theotherp/nzbhydra2/releases/download/v${NZBHYDRA2_VER}/nzbhydra2-${NZBHYDRA2_VER}-linux.zip" && \
mkdir -p /app/nzbhydra2/bin && \
unzip /tmp/nzbhydra2.zip -d /app/nzbhydra2/bin && \
chmod +x /app/nzbhydra2/bin/nzbhydra2wrapperPy3.py && \
echo "ReleaseType=${NZBHYDRA2_RELEASE_TYPE}\nPackageVersion=${VERSION}\nPackageAuthor=linuxserver.io" > /app/nzbhydra2/package_info && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
echo "**** install packages ****" && \
apk add -U --no-cache --virtual=build-dependencies \
unzip && \
apk add -U --no-cache \
curl \
jq \
openjdk11-jre-headless \
python3 && \
echo "**** install nzbhydra2 ****" && \
if [ -z ${NZBHYDRA2_RELEASE+x} ]; then \
NZBHYDRA2_RELEASE=$(curl -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases" \
| jq -r '.[0] | .tag_name'); \
fi && \
NZBHYDRA2_VER=${NZBHYDRA2_RELEASE#v} && \
curl -o \
/tmp/nzbhydra2.zip -L \
"https://github.com/theotherp/nzbhydra2/releases/download/v${NZBHYDRA2_VER}/nzbhydra2-${NZBHYDRA2_VER}-linux.zip" && \
mkdir -p /app/nzbhydra2/bin && \
unzip /tmp/nzbhydra2.zip -d /app/nzbhydra2/bin && \
rm -rf \
/app/nzbhydra2/bin/upstart/ \
/app/nzbhydra2/bin/rc.d/ \
/app/nzbhydra2/bin/sysv/ \
/app/nzbhydra2/bin/systemd/ && \
chmod +x /app/nzbhydra2/bin/nzbhydra2wrapperPy3.py && \
echo -e "ReleaseType=${NZBHYDRA2_RELEASE_TYPE}\nPackageVersion=${VERSION}\nPackageAuthor=linuxserver.io" > /app/nzbhydra2/package_info && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/*
# copy local files
COPY root/ /
+33 -30
View File
@@ -1,44 +1,47 @@
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm32v7-bionic
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.15
# set version label
ARG BUILD_DATE
ARG VERSION
ARG NZBHYDRA2_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca,nemchik"
LABEL maintainer="nemchik"
# environment settings
ARG DEBIAN_FRONTEND="noninteractive"
ENV NZBHYDRA2_RELEASE_TYPE="Pre-Release"
RUN \
echo "**** install packages ****" && \
apt-get update && \
apt-get install -y \
curl \
jq \
unzip && \
apt-get install --no-install-recommends -y \
openjdk-11-jre-headless \
python3 && \
echo "**** install nzbhydra2 ****" && \
if [ -z ${NZBHYDRA2_RELEASE+x} ]; then \
NZBHYDRA2_RELEASE=$(curl -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases" \
| jq -r '.[0] | .tag_name'); \
fi && \
NZBHYDRA2_VER=${NZBHYDRA2_RELEASE#v} && \
curl -o \
/tmp/nzbhydra2.zip -L \
"https://github.com/theotherp/nzbhydra2/releases/download/v${NZBHYDRA2_VER}/nzbhydra2-${NZBHYDRA2_VER}-linux.zip" && \
mkdir -p /app/nzbhydra2/bin && \
unzip /tmp/nzbhydra2.zip -d /app/nzbhydra2/bin && \
chmod +x /app/nzbhydra2/bin/nzbhydra2wrapperPy3.py && \
echo "ReleaseType=${NZBHYDRA2_RELEASE_TYPE}\nPackageVersion=${VERSION}\nPackageAuthor=linuxserver.io" > /app/nzbhydra2/package_info && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
echo "**** install packages ****" && \
apk add -U --no-cache --virtual=build-dependencies \
unzip && \
apk add -U --no-cache \
curl \
jq \
openjdk8-jre \
python3 && \
echo "**** install nzbhydra2 ****" && \
if [ -z ${NZBHYDRA2_RELEASE+x} ]; then \
NZBHYDRA2_RELEASE=$(curl -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases" \
| jq -r '.[0] | .tag_name'); \
fi && \
NZBHYDRA2_VER=${NZBHYDRA2_RELEASE#v} && \
curl -o \
/tmp/nzbhydra2.zip -L \
"https://github.com/theotherp/nzbhydra2/releases/download/v${NZBHYDRA2_VER}/nzbhydra2-${NZBHYDRA2_VER}-linux.zip" && \
mkdir -p /app/nzbhydra2/bin && \
unzip /tmp/nzbhydra2.zip -d /app/nzbhydra2/bin && \
rm -rf \
/app/nzbhydra2/bin/upstart/ \
/app/nzbhydra2/bin/rc.d/ \
/app/nzbhydra2/bin/sysv/ \
/app/nzbhydra2/bin/systemd/ && \
chmod +x /app/nzbhydra2/bin/nzbhydra2wrapperPy3.py && \
echo -e "ReleaseType=${NZBHYDRA2_RELEASE_TYPE}\nPackageVersion=${VERSION}\nPackageAuthor=linuxserver.io" > /app/nzbhydra2/package_info && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/*
# copy local files
COPY root/ /
Vendored
+207 -32
View File
@@ -16,6 +16,7 @@ pipeline {
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
SCARF_TOKEN=credentials('scarf_api_key')
EXT_GIT_BRANCH = 'develop'
EXT_USER = 'theotherp'
EXT_REPO = 'nzbhydra2'
@@ -26,7 +27,7 @@ pipeline {
DOCKERHUB_IMAGE = 'linuxserver/nzbhydra2'
DEV_DOCKERHUB_IMAGE = 'lsiodev/nzbhydra2'
PR_DOCKERHUB_IMAGE = 'lspipepr/nzbhydra2'
DIST_IMAGE = 'ubuntu'
DIST_IMAGE = 'alpine'
MULTIARCH='true'
CI='true'
CI_WEB='true'
@@ -58,7 +59,7 @@ pipeline {
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
env.PULL_REQUEST = env.CHANGE_ID
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.md ./.github/ISSUE_TEMPLATE/issue.feature.md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/greetings.yml ./.github/workflows/stale.yml ./root/donate.txt ./.github/workflows/package_trigger.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/external_trigger.yml ./.github/workflows/external_trigger_scheduler.yml'
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml ./root/donate.txt'
}
script{
env.LS_RELEASE_NUMBER = sh(
@@ -106,7 +107,7 @@ pipeline {
steps{
script{
env.EXT_RELEASE = sh(
script: '''curl -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases | jq -r '.[0] | .tag_name' ''',
script: '''curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases | jq -r '.[0] | .tag_name' ''',
returnStdout: true).trim()
}
}
@@ -126,6 +127,30 @@ pipeline {
env.EXT_RELEASE_CLEAN = sh(
script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''',
returnStdout: true).trim()
def semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)\.(\d+)/
if (semver.find()) {
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${semver[0][3]}"
} else {
semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)(?:\.(\d+))?(.*)/
if (semver.find()) {
if (semver[0][3]) {
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${semver[0][3]}"
} else if (!semver[0][3] && !semver[0][4]) {
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${(new Date()).format('YYYYMMdd')}"
}
}
}
if (env.SEMVER != null) {
if (BRANCH_NAME != "master" && BRANCH_NAME != "main") {
env.SEMVER = "${env.SEMVER}-${BRANCH_NAME}"
}
println("SEMVER: ${env.SEMVER}")
} else {
println("No SEMVER detected")
}
}
}
}
@@ -140,6 +165,7 @@ pipeline {
env.IMAGE = env.DOCKERHUB_IMAGE
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-dev-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-dev-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-dev-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else {
@@ -162,6 +188,7 @@ pipeline {
env.IMAGE = env.DEV_DOCKERHUB_IMAGE
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lsiodev-' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-dev-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-dev-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-dev-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else {
@@ -184,6 +211,7 @@ pipeline {
env.IMAGE = env.PR_DOCKERHUB_IMAGE
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lspipepr-' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-dev-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-dev-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-dev-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
} else {
@@ -259,7 +287,7 @@ pipeline {
echo "Jenkinsfile is up to date."
fi
# Stage 2 - Delete old templates
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md"
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md\n.github/ISSUE_TEMPLATE/issue.bug.md\n.github/ISSUE_TEMPLATE/issue.feature.md"
for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -270,7 +298,6 @@ pipeline {
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f dev
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}"
done
@@ -317,22 +344,26 @@ pipeline {
git commit -m 'Bot Updating Documentation'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
fi
mkdir -p ${TEMPDIR}/unraid
mkdir -p ${TEMPDIR}/unraid
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
fi
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
cd ${TEMPDIR}/unraid/templates/
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, skipping Unraid template upload"
echo "Image is on the ignore list, marking Unraid template as deprecated"
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add -u unraid/${CONTAINER_NAME}.xml
git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Moving Deprecated Unraid Template' || :
else
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
cd ${TEMPDIR}/unraid/templates/
git add unraid/${CONTAINER_NAME}.xml
git commit -m 'Bot Updating Unraid Template'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git --all
fi
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git --all
fi
rm -Rf ${TEMPDIR}'''
script{
@@ -378,33 +409,94 @@ pipeline {
"visibility":"public"}' '''
}
}
/* #######################
Scarf.sh package registry
####################### */
// Add package to Scarf.sh and set permissions
stage("Scarf.sh package registry"){
when {
branch "dev"
environment name: 'EXIT_STATUS', value: ''
}
steps{
sh '''#! /bin/bash
set -e
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/nzbhydra2") | .uuid')
if [ -z "${PACKAGE_UUID}" ]; then
echo "Adding package to Scarf.sh"
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
-H "Authorization: Bearer ${SCARF_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"name":"linuxserver/nzbhydra2",\
"shortDescription":"example description",\
"libraryType":"docker",\
"website":"https://github.com/linuxserver/docker-nzbhydra2",\
"backendUrl":"https://ghcr.io/linuxserver/nzbhydra2",\
"publicUrl":"https://lscr.io/linuxserver/nzbhydra2"}' || :
else
echo "Package already exists on Scarf.sh"
fi
'''
}
}
/* ###############
Build Container
############### */
// Build Docker container for push to LS Repo
stage('Build-Single') {
when {
environment name: 'MULTIARCH', value: 'false'
expression {
env.MULTIARCH == 'false' || params.PACKAGE_CHECK == 'true'
}
environment name: 'EXIT_STATUS', value: ''
}
steps {
echo "Running on node: ${NODE_NAME}"
sh "docker build --no-cache --pull -t ${IMAGE}:${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-nzbhydra2/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-nzbhydra2\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-nzbhydra2\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Nzbhydra2\" \
--label \"org.opencontainers.image.description=[Nzbhydra2](https://github.com/theotherp/nzbhydra2) is a meta search application for NZB indexers, the spiritual successor to NZBmegasearcH, and an evolution of the original application [NZBHydra](https://github.com/theotherp/nzbhydra). It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is currently in its early stages and is in active development. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. \" \
--no-cache --pull -t ${IMAGE}:${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
// Build MultiArch Docker containers for push to LS Repo
stage('Build-Multi') {
when {
environment name: 'MULTIARCH', value: 'true'
allOf {
environment name: 'MULTIARCH', value: 'true'
expression { params.PACKAGE_CHECK == 'false' }
}
environment name: 'EXIT_STATUS', value: ''
}
parallel {
stage('Build X86') {
steps {
echo "Running on node: ${NODE_NAME}"
sh "docker build --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-nzbhydra2/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-nzbhydra2\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-nzbhydra2\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Nzbhydra2\" \
--label \"org.opencontainers.image.description=[Nzbhydra2](https://github.com/theotherp/nzbhydra2) is a meta search application for NZB indexers, the spiritual successor to NZBmegasearcH, and an evolution of the original application [NZBHydra](https://github.com/theotherp/nzbhydra). It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is currently in its early stages and is in active development. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. \" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
stage('Build ARMHF') {
@@ -417,8 +509,21 @@ pipeline {
sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
'''
sh "docker build --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-nzbhydra2/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-nzbhydra2\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-nzbhydra2\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Nzbhydra2\" \
--label \"org.opencontainers.image.description=[Nzbhydra2](https://github.com/theotherp/nzbhydra2) is a meta search application for NZB indexers, the spiritual successor to NZBmegasearcH, and an evolution of the original application [NZBHydra](https://github.com/theotherp/nzbhydra). It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is currently in its early stages and is in active development. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. \" \
--no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) {
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
@@ -438,8 +543,21 @@ pipeline {
sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
'''
sh "docker build --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-nzbhydra2/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-nzbhydra2\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-nzbhydra2\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Nzbhydra2\" \
--label \"org.opencontainers.image.description=[Nzbhydra2](https://github.com/theotherp/nzbhydra2) is a meta search application for NZB indexers, the spiritual successor to NZBmegasearcH, and an evolution of the original application [NZBHydra](https://github.com/theotherp/nzbhydra). It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is currently in its early stages and is in active development. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. \" \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) {
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
@@ -462,7 +580,7 @@ pipeline {
sh '''#! /bin/bash
set -e
TEMPDIR=$(mktemp -d)
if [ "${MULTIARCH}" == "true" ]; then
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
else
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
@@ -477,6 +595,15 @@ pipeline {
apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "fedora" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
rpm -qa > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "arch" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
pacman -Q > /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
fi
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
@@ -514,7 +641,7 @@ pipeline {
steps {
sh '''#! /bin/bash
echo "Packages were updated. Cleaning up the image and exiting."
if [ "${MULTIARCH}" == "true" ]; then
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
docker rmi ${IMAGE}:amd64-${META_TAG}
else
docker rmi ${IMAGE}:${META_TAG}
@@ -538,7 +665,7 @@ pipeline {
steps {
sh '''#! /bin/bash
echo "There are no package updates. Cleaning up the image and exiting."
if [ "${MULTIARCH}" == "true" ]; then
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
docker rmi ${IMAGE}:amd64-${META_TAG}
else
docker rmi ${IMAGE}:${META_TAG}
@@ -593,7 +720,7 @@ pipeline {
-e DO_REGION="ams3" \
-e DO_BUCKET="lsio-ci" \
-t ghcr.io/linuxserver/ci:latest \
python /ci/ci.py'''
python3 test_build.py'''
}
}
}
@@ -613,6 +740,12 @@ pipeline {
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
retry(5) {
@@ -621,22 +754,32 @@ pipeline {
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:dev
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
fi
docker push ${PUSHIMAGE}:dev
docker push ${PUSHIMAGE}:${META_TAG}
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker push ${PUSHIMAGE}:${SEMVER}
fi
done
'''
}
sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:${META_TAG} \
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
${DELETEIMAGE}:dev || :
if [ -n "${SEMVER}" ]; then
docker rmi ${DELETEIMAGE}:${SEMVER} || :
fi
done
'''
}
@@ -655,6 +798,12 @@ pipeline {
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
retry(5) {
@@ -663,13 +812,14 @@ pipeline {
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [ "${CI}" == "false" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}"; do
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
@@ -679,6 +829,11 @@ pipeline {
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
@@ -688,6 +843,11 @@ pipeline {
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
docker manifest push --purge ${MANIFESTIMAGE}:dev || :
docker manifest create ${MANIFESTIMAGE}:dev ${MANIFESTIMAGE}:amd64-dev ${MANIFESTIMAGE}:arm32v7-dev ${MANIFESTIMAGE}:arm64v8-dev
docker manifest annotate ${MANIFESTIMAGE}:dev ${MANIFESTIMAGE}:arm32v7-dev --os linux --arch arm
@@ -700,14 +860,23 @@ pipeline {
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
fi
docker manifest push --purge ${MANIFESTIMAGE}:dev
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
fi
done
'''
}
sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-dev \
@@ -718,6 +887,12 @@ pipeline {
${DELETEIMAGE}:arm64v8-${META_TAG} \
${DELETEIMAGE}:arm64v8-dev \
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
if [ -n "${SEMVER}" ]; then
docker rmi \
${DELETEIMAGE}:amd64-${SEMVER} \
${DELETEIMAGE}:arm32v7-${SEMVER} \
${DELETEIMAGE}:arm64v8-${SEMVER} || :
fi
done
docker rmi \
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
@@ -746,11 +921,11 @@ pipeline {
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag"
sh '''#! /bin/bash
curl -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases | jq '.[0] |.body' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json
curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases | jq '.[0] |.body' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json
echo '{"tag_name":"'${META_TAG}'",\
"target_commitish": "dev",\
"name": "'${META_TAG}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**'${EXT_REPO}' Changes:**\\n\\n' > start
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**'${EXT_REPO}' Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": true}' >> releasebody.json
paste -d'\\0' start releasebody.json > releasebody.json.done
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
@@ -775,7 +950,7 @@ pipeline {
set -e
TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
docker pull ghcr.io/linuxserver/readme-sync
docker run --rm=true \
-e DOCKERHUB_USERNAME=$DOCKERUSER \
+48 -44
View File
@@ -1,5 +1,5 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the CONTRIBUTING.md -->
<!-- Please read the https://github.com/linuxserver/docker-nzbhydra2/blob/dev/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
@@ -12,13 +12,14 @@
The [LinuxServer.io](https://linuxserver.io) team brings you another container release featuring:
* regular and timely application updates
* easy user mappings (PGID, PUID)
* custom base image with s6 overlay
* weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
* regular security updates
* regular and timely application updates
* easy user mappings (PGID, PUID)
* custom base image with s6 overlay
* weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
* regular security updates
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!
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum.
@@ -28,11 +29,12 @@ Find us at:
# [linuxserver/nzbhydra2](https://github.com/linuxserver/docker-nzbhydra2)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fnzbhydra2?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fnzbhydra2)
[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-nzbhydra2.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-nzbhydra2)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-nzbhydra2.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-nzbhydra2/releases)
[![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-nzbhydra2/packages)
[![GitLab Container Registry](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab)](https://gitlab.com/linuxserver.io/docker-nzbhydra2/container_registry)
[![MicroBadger Layers](https://img.shields.io/microbadger/layers/linuxserver/nzbhydra2.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge)](https://microbadger.com/images/linuxserver/nzbhydra2 "Get your own version badge on microbadger.com")
[![Quay.io](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/nzbhydra2)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/nzbhydra2.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/nzbhydra2)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/nzbhydra2.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/nzbhydra2)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-nzbhydra2%2Fjob%2Fdev%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nzbhydra2/job/dev/)
@@ -42,46 +44,47 @@ Find us at:
It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is currently in its early stages and is in active development. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version.
[![nzbhydra2](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/hydra-icon.png)](https://github.com/theotherp/nzbhydra2)
## 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) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
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 `ghcr.io/linuxserver/nzbhydra2` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
Simply pulling `lscr.io/linuxserver/nzbhydra2:dev` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are:
| Architecture | Tag |
| :----: | --- |
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
| Architecture | Available | Tag |
| :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> |
| armhf| ✅ | arm32v7-\<version tag\> |
## Version Tags
This image provides various versions that are available via tags. `latest` tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them.
This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags.
| Tag | Description |
| :----: | --- |
| latest | Stable releases |
| dev | Prereleases from their GitHub |
| Tag | Available | Description |
| :----: | :----: |--- |
| latest | ✅ | Stable releases |
| dev | ✅ | Prereleases from their GitHub |
## Application Setup
The web interface is at `<your ip>:5076` , to set up indexers and connections to your nzb download applications.
## Usage
Here are some example snippets to help you get started creating a container.
### docker-compose ([recommended](https://docs.linuxserver.io/general/docker-compose))
Compatible with docker-compose v2 schemas.
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```yaml
---
version: "2.1"
services:
nzbhydra2:
image: ghcr.io/linuxserver/nzbhydra2
image: lscr.io/linuxserver/nzbhydra2:dev
container_name: nzbhydra2
environment:
- PUID=1000
@@ -95,9 +98,9 @@ services:
restart: unless-stopped
```
### docker cli
### docker cli ([click here for more info](https://docs.docker.com/engine/reference/commandline/cli/))
```
```bash
docker run -d \
--name=nzbhydra2 \
-e PUID=1000 \
@@ -107,10 +110,9 @@ docker run -d \
-v <path to data>:/config \
-v <nzb download>:/downloads \
--restart unless-stopped \
ghcr.io/linuxserver/nzbhydra2
lscr.io/linuxserver/nzbhydra2:dev
```
## Parameters
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
@@ -130,7 +132,7 @@ You can set any environment variable from a file by using a special prepend `FIL
As an example:
```
```bash
-e FILE__PASSWORD=/run/secrets/mysecretpassword
```
@@ -149,24 +151,17 @@ Ensure any volume directories on the host are owned by the same user you specify
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
```
```bash
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
```
&nbsp;
## Application Setup
The web interface is at `<your ip>:5076` , to set up indexers and connections to your nzb download applications.
## Docker Mods
[![Docker Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=nzbhydra2&query=%24.mods%5B%27nzbhydra2%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=nzbhydra2 "view available mods for this container.") [![Docker Universal Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=universal&query=%24.mods%5B%27universal%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=universal "view available universal mods.")
We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.
## Support Info
* Shell access whilst the container is running: `docker exec -it nzbhydra2 /bin/bash`
@@ -174,7 +169,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' nzbhydra2`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' ghcr.io/linuxserver/nzbhydra2`
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/nzbhydra2:dev`
## Updating Info
@@ -183,6 +178,7 @@ Most of our images are static, versioned, and require an image update and contai
Below are the instructions for updating containers:
### Via Docker Compose
* Update all images: `docker-compose pull`
* or update a single image: `docker-compose pull nzbhydra2`
* Let compose update all containers as necessary: `docker-compose up -d`
@@ -190,41 +186,48 @@ Below are the instructions for updating containers:
* You can also remove the old dangling images: `docker image prune`
### Via Docker Run
* Update the image: `docker pull ghcr.io/linuxserver/nzbhydra2`
* Update the image: `docker pull lscr.io/linuxserver/nzbhydra2:dev`
* Stop the running container: `docker stop nzbhydra2`
* Delete the container: `docker rm nzbhydra2`
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
* You can also remove the old dangling images: `docker image prune`
### Via Watchtower auto-updater (only use if you don't remember the original parameters)
* Pull the latest image at its tag and replace it with the same env variables in one run:
```
```bash
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once nzbhydra2
```
* You can also remove the old dangling images: `docker image prune`
**Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose).
### Image Update Notifications - Diun (Docker Image Update Notifier)
* We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
## Building locally
If you want to make local modifications to these images for development purposes or just to customize the logic:
```
```bash
git clone https://github.com/linuxserver/docker-nzbhydra2.git
cd docker-nzbhydra2
docker build \
--no-cache \
--pull \
-t ghcr.io/linuxserver/nzbhydra2:latest .
-t lscr.io/linuxserver/nzbhydra2:dev .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```
```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset
```
@@ -232,6 +235,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **18.04.22:** - Rebase to Alpine 3.15.
* **01.05.20:** - Reorganize container, Relocate app to /app/nzbhydra2/bin, Create /app/nzbhydra2/package_info, Use nzbhydra2wrapperPy3.py from zip.
* **29.04.20:** - Include stable releases incrementally with dev releases.
* **14.04.20:** - Correct Name, Hydra2 -> Nzbhydra2.
+1 -1
View File
@@ -17,7 +17,7 @@ repo_vars:
- DOCKERHUB_IMAGE = 'linuxserver/nzbhydra2'
- DEV_DOCKERHUB_IMAGE = 'lsiodev/nzbhydra2'
- PR_DOCKERHUB_IMAGE = 'lspipepr/nzbhydra2'
- DIST_IMAGE = 'ubuntu'
- DIST_IMAGE = 'alpine'
- MULTIARCH='true'
- CI='true'
- CI_WEB='true'
+54 -176
View File
@@ -1,176 +1,54 @@
adduser3.116ubuntu1
apt1.6.12ubuntu0.2
apt-utils1.6.12ubuntu0.2
base-files10.1ubuntu2.10
base-passwd3.5.44
bash4.4.18-2ubuntu1.2
bsdutils1:2.31.1-0.4ubuntu3.7
bzip21.0.6-8.1ubuntu0.2
ca-certificates20210119~18.04.1
ca-certificates-java20180516ubuntu1~18.04.1
coreutils8.28-1ubuntu1
curl7.58.0-2ubuntu3.12
dash0.5.8-2.10
debconf1.5.66ubuntu1
debianutils4.8.4
diffutils1:3.6-1
dpkg1.19.0.5ubuntu2.3
e2fsprogs1.44.1-1ubuntu1.3
fdisk2.31.1-0.4ubuntu3.7
findutils4.6.0+git+20170828-2
fontconfig-config2.12.6-0ubuntu2
fonts-dejavu-core2.37-1
gcc-8-base8.4.0-1ubuntu1~18.04
gpgv2.2.4-1ubuntu1.4
grep3.1-2build1
gzip1.6-5ubuntu1
hostname3.20
init-system-helpers1.51
java-common0.68ubuntu1~18.04.1
jq1.5+dfsg-2
krb5-locales1.16-2ubuntu0.2
libacl12.2.52-3build1
libapt-inst2.01.6.12ubuntu0.2
libapt-pkg5.01.6.12ubuntu0.2
libasn1-8-heimdal7.5.0+dfsg-1
libasound21.1.3-5ubuntu0.5
libasound2-data1.1.3-5ubuntu0.5
libattr11:2.4.47-2build1
libaudit11:2.8.2-1ubuntu1.1
libaudit-common1:2.8.2-1ubuntu1.1
libavahi-client30.7-3.1ubuntu1.2
libavahi-common30.7-3.1ubuntu1.2
libavahi-common-data0.7-3.1ubuntu1.2
libblkid12.31.1-0.4ubuntu3.7
libbsd00.8.7-1ubuntu0.1
libbz2-1.01.0.6-8.1ubuntu0.2
libc62.27-3ubuntu1.4
libcap-ng00.7.7-3.1
libc-bin2.27-3ubuntu1.4
libcom-err21.44.1-1ubuntu1.3
libcups22.2.7-1ubuntu2.8
libcurl47.58.0-2ubuntu3.12
libdb5.35.3.28-13.1ubuntu1.1
libdbus-1-31.12.2-1ubuntu1.2
libdebconfclient00.213ubuntu1
libexpat12.2.5-3ubuntu0.2
libext2fs21.44.1-1ubuntu1.3
libfdisk12.31.1-0.4ubuntu3.7
libffi63.2.1-8
libfontconfig12.12.6-0ubuntu2
libfreetype62.8.1-2ubuntu2.1
libgcc11:8.4.0-1ubuntu1~18.04
libgcrypt201.8.1-4ubuntu1.2
libglib2.0-02.56.4-0ubuntu0.18.04.7
libgmp102:6.1.2+dfsg-2
libgnutls303.5.18-1ubuntu1.4
libgpg-error01.27-6
libgraphite2-31.3.11-2
libgssapi3-heimdal7.5.0+dfsg-1
libgssapi-krb5-21.16-2ubuntu0.2
libharfbuzz0b1.7.2-1ubuntu1
libhcrypto4-heimdal7.5.0+dfsg-1
libheimbase1-heimdal7.5.0+dfsg-1
libheimntlm0-heimdal7.5.0+dfsg-1
libhogweed43.4-1
libhx509-5-heimdal7.5.0+dfsg-1
libidn2-02.0.4-1.1ubuntu0.2
libjpeg88c-2ubuntu8
libjpeg-turbo81.5.2-0ubuntu5.18.04.4
libjq11.5+dfsg-2
libk5crypto31.16-2ubuntu0.2
libkeyutils11.5.9-9.2ubuntu2
libkrb5-26-heimdal7.5.0+dfsg-1
libkrb5-31.16-2ubuntu0.2
libkrb5support01.16-2ubuntu0.2
liblcms2-22.9-1ubuntu0.1
libldap-2.4-22.4.45+dfsg-1ubuntu1.10
libldap-common2.4.45+dfsg-1ubuntu1.10
liblz4-10.0~r131-2ubuntu3
liblzma55.2.2-1.3
libmount12.31.1-0.4ubuntu3.7
libmpdec22.4.2-1ubuntu1
libncurses56.1-1ubuntu1.18.04
libncursesw56.1-1ubuntu1.18.04
libnettle63.4-1
libnghttp2-141.30.0-1ubuntu1
libnspr42:4.18-1ubuntu1
libnss32:3.35-2ubuntu2.12
libonig46.7.0-1
libp11-kit00.23.9-2ubuntu0.1
libpam0g1.1.8-3.6ubuntu2.18.04.2
libpam-modules1.1.8-3.6ubuntu2.18.04.2
libpam-modules-bin1.1.8-3.6ubuntu2.18.04.2
libpam-runtime1.1.8-3.6ubuntu2.18.04.2
libpcre32:8.39-9
libpcsclite11.8.23-1
libpng16-161.6.34-1ubuntu0.18.04.2
libprocps62:3.3.12-3ubuntu1.2
libpsl50.19.1-5build1
libpython3.6-minimal3.6.9-1~18.04ubuntu1.4
libpython3.6-stdlib3.6.9-1~18.04ubuntu1.4
libpython3-stdlib3.6.7-1~18.04
libreadline77.0-3
libroken18-heimdal7.5.0+dfsg-1
librtmp12.4+20151223.gitfa8646d.1-1
libsasl2-22.1.27~101-g0780600+dfsg-3ubuntu2.3
libsasl2-modules2.1.27~101-g0780600+dfsg-3ubuntu2.3
libsasl2-modules-db2.1.27~101-g0780600+dfsg-3ubuntu2.3
libseccomp22.4.3-1ubuntu3.18.04.3
libselinux12.7-2build2
libsemanage12.7-2build2
libsemanage-common2.7-2build2
libsepol12.7-1
libsmartcols12.31.1-0.4ubuntu3.7
libsqlite3-03.22.0-1ubuntu0.4
libss21.44.1-1ubuntu1.3
libssl1.11.1.1-1ubuntu2.1~18.04.8
libstdc++68.4.0-1ubuntu1~18.04
libsystemd0237-3ubuntu10.44
libtasn1-64.13-2
libtinfo56.1-1ubuntu1.18.04
libudev1237-3ubuntu10.44
libunistring20.9.9-0ubuntu2
libuuid12.31.1-0.4ubuntu3.7
libwind0-heimdal7.5.0+dfsg-1
libx11-62:1.6.4-3ubuntu0.3
libx11-data2:1.6.4-3ubuntu0.3
libxau61:1.0.8-1ubuntu1
libxcb11.13-2~ubuntu18.04
libxdmcp61:1.1.2-3
libxext62:1.3.3-1
libxi62:1.7.9-1
libxrender11:0.9.10-1
libxtst62:1.2.3-1
libzstd11.3.3+dfsg-2ubuntu1.2
locales2.27-3ubuntu1.4
login1:4.5-1ubuntu2
lsb-base9.20170808ubuntu1
mawk1.3.3-17ubuntu3
mime-support3.60ubuntu1
mount2.31.1-0.4ubuntu3.7
multiarch-support2.27-3ubuntu1.4
ncurses-base6.1-1ubuntu1.18.04
ncurses-bin6.1-1ubuntu1.18.04
openjdk-11-jre-headless11.0.10+9-0ubuntu1~18.04
openssl1.1.1-1ubuntu2.1~18.04.8
passwd1:4.5-1ubuntu2
perl-base5.26.1-6ubuntu0.5
procps2:3.3.12-3ubuntu1.2
publicsuffix20180223.1310-1
python33.6.7-1~18.04
python3.63.6.9-1~18.04ubuntu1.4
python3.6-minimal3.6.9-1~18.04ubuntu1.4
python3-minimal3.6.7-1~18.04
readline-common7.0-3
sed4.4-2
sensible-utils0.0.12
sysvinit-utils2.88dsf-59.10ubuntu1
tar1.29b-2ubuntu0.2
tzdata2021a-0ubuntu0.18.04
ubuntu-keyring2018.09.18.1~18.04.0
ucf3.0038
unzip6.0-21ubuntu1.1
util-linux2.31.1-0.4ubuntu3.7
x11-common1:7.7+19ubuntu7.1
zlib1g1:1.2.11.dfsg-0ubuntu2
alpine-baselayout-3.2.0-r18
alpine-keys-2.4-r1
apk-tools-2.12.7-r3
bash-5.1.16-r0
brotli-libs-1.0.9-r5
busybox-1.34.1-r7
ca-certificates-20220614-r0
ca-certificates-bundle-20220614-r0
coreutils-9.0-r2
curl-7.80.0-r4
expat-2.5.0-r0
gdbm-1.22-r0
java-cacerts-1.0-r1
java-common-0.5-r0
jq-1.6-r1
libacl-2.2.53-r0
libattr-2.5.1-r1
libbz2-1.0.8-r1
libc-utils-0.7.2-r3
libcrypto1.1-1.1.1s-r1
libcurl-7.80.0-r4
libffi-3.4.2-r1
libgcc-10.3.1_git20211027-r0
libintl-0.21-r0
libproc-3.3.17-r0
libretls-3.3.4-r3
libssl1.1-1.1.1s-r1
libstdc++-10.3.1_git20211027-r0
libtasn1-4.18.0-r0
linux-pam-1.5.2-r0
mpdecimal-2.5.1-r1
musl-1.2.2-r7
musl-utils-1.2.2-r7
ncurses-libs-6.3_p20211120-r1
ncurses-terminfo-base-6.3_p20211120-r1
nghttp2-libs-1.46.0-r0
oniguruma-6.9.7.1-r0
openjdk11-jre-headless-11.0.17_p8-r0
p11-kit-0.24.0-r1
p11-kit-trust-0.24.0-r1
procps-3.3.17-r0
python3-3.9.15-r0
readline-8.1.1-r0
s6-ipcserver-2.11.0.0-r0
scanelf-1.3.3-r0
shadow-4.8.1-r1
skalibs-2.11.0.0-r0
sqlite-libs-3.36.0-r0
ssl_client-1.34.1-r7
tzdata-2022f-r1
utmps-0.1.0.3-r0
xz-5.2.5-r1
xz-libs-5.2.5-r1
zlib-1.2.12-r3
+1
View File
@@ -56,6 +56,7 @@ app_setup_block: |
# changelog
changelogs:
- { date: "18.04.22:", desc: "Rebase to Alpine 3.15." }
- { date: "01.05.20:", desc: "Reorganize container, Relocate app to /app/nzbhydra2/bin, Create /app/nzbhydra2/package_info, Use nzbhydra2wrapperPy3.py from zip." }
- { date: "29.04.20:", desc: "Include stable releases incrementally with dev releases." }
- { date: "14.04.20:", desc: "Correct Name, Hydra2 -> Nzbhydra2." }
-1
View File
@@ -3,7 +3,6 @@
# make our folders
mkdir -p /config/logs
# permissions
chmod +x /app/nzbhydra2/bin/nzbhydra2
chown -R abc:abc /config
+2 -2
View File
@@ -6,5 +6,5 @@ unset HOST_OS
cd /app/nzbhydra2/bin || exit
exec \
s6-setuidgid abc /usr/bin/python3 nzbhydra2wrapperPy3.py \
--nobrowser --datafolder /config
s6-setuidgid abc /usr/bin/python3 nzbhydra2wrapperPy3.py \
--nobrowser --datafolder /config