Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 153eac4

Browse files
authoredFeb 4, 2025
Merge pull request #24 from thespad/3.21
Rebase to 3.21
2 parents 532b92c + 5d10c52 commit 153eac4

File tree

3 files changed

+150
-9
lines changed

3 files changed

+150
-9
lines changed
 

‎Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# syntax=docker/dockerfile:1
22

3-
FROM ghcr.io/linuxserver/baseimage-alpine:3.20
3+
FROM ghcr.io/linuxserver/baseimage-alpine:3.21
44

55
# set version label
66
ARG BUILD_DATE

‎Dockerfile.aarch64

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# syntax=docker/dockerfile:1
22

3-
FROM ghcr.io/linuxserver/baseimage-alpine:3.20
3+
FROM ghcr.io/linuxserver/baseimage-alpine:3.21
44

55
# set version label
66
ARG BUILD_DATE

‎README.md

+148-7
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,77 @@ The architectures supported by this image are:
3232
| amd64 || latest |
3333
| arm64 || latest |
3434

35+
## Usage
36+
37+
Here are some example snippets to help you get started creating a container.
38+
39+
### docker-compose ([recommended](https://docs.linuxserver.io/general/docker-compose))
40+
41+
```yaml
42+
---
43+
services:
44+
arr-in-one:
45+
image: ghcr.io/thespad/arr-in-one
46+
container_name: arr-in-one
47+
environment:
48+
- PUID=1000
49+
- PGID=1000
50+
- TZ=Europe/London
51+
- SONARR= #optional
52+
- RADARR= #optional
53+
- LIDARR= #optional
54+
- READARR= #optional
55+
- PROWLARR= #optional
56+
- WHISPARR= #optional
57+
volumes:
58+
- /config:/config
59+
ports:
60+
- 8989:8989
61+
- 7878:7878
62+
- 8686:8686
63+
- 8787:8787
64+
- 9696:9696
65+
- 6969:6969
66+
restart: unless-stopped
67+
```
68+
69+
### docker cli
70+
71+
```shell
72+
docker run -d \
73+
--name=arr-in-one \
74+
-e PUID=1000 \
75+
-e PGID=1000 \
76+
-e TZ=Europe/London \
77+
-e SONARR= `#optional` \
78+
-e RADARR= `#optional` \
79+
-e LIDARR= `#optional` \
80+
-e READARR= `#optional` \
81+
-e PROWLARR= `#optional` \
82+
-e WHISPARR= `#optional` \
83+
-p 8989:8989 \
84+
-p 7878:7878 \
85+
-p 8686:8686 \
86+
-p 8787:8787 \
87+
-p 9696:9696 \
88+
-p 6969:6969 \
89+
-v /config:/config \
90+
--restart unless-stopped \
91+
ghcr.io/thespad/arr-in-one
92+
```
93+
3594
## Parameters
3695

3796
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.
3897

3998
| Parameter | Function |
4099
| ---- | --- |
41-
| `-p 8989` | Sonarr UI |
42-
| `-p 7878` | Radarr UI |
43-
| `-p 8686` | Lidarr UI |
44-
| `-p 8787` | Readarr UI |
45-
| `-p 9696` | Prowlarr UI |
46-
| `-p 6969` | Whisparr UI |
100+
| `-p 8989:8989` | Sonarr UI |
101+
| `-p 7878:7878` | Radarr UI |
102+
| `-p 8686:8686` | Lidarr UI |
103+
| `-p 8787:8787` | Readarr UI |
104+
| `-p 9696:9696` | Prowlarr UI |
105+
| `-p 6969:6969` | Whisparr UI |
47106
| `-e PUID=1000` | UID to run the applications as. |
48107
| `-e PGID=1000` | GID to run the applications as. |
49108
| `-e TZ=Europe/London` | Specify a timezone to use e.g. Europe/London. |
@@ -53,10 +112,92 @@ Container images are configured using parameters passed at runtime (such as thos
53112
| `-e READARR=` | Set to `false` to disable the Readarr service. |
54113
| `-e PROWLARR=` | Set to `false` to disable the Prowlarr service. |
55114
| `-e WHISPARR=` | Set to `false` to disable the Whisparr service. |
56-
| `-v /config` | Stores config and application files |
115+
| `-v /config:/config` | Stores config and application files |
116+
117+
## Environment variables from files (Docker secrets)
118+
119+
You can set any environment variable from a file by using a special prepend `FILE__`.
120+
121+
As an example:
122+
123+
```shell
124+
-e FILE__PASSWORD=/run/secrets/mysecretpassword
125+
```
126+
127+
Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
128+
129+
## Umask for running applications
130+
131+
For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional `-e UMASK=022` setting.
132+
Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up [here](https://en.wikipedia.org/wiki/Umask) before asking for support.
133+
134+
## User / Group Identifiers
135+
136+
When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
137+
138+
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
139+
140+
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
141+
142+
```shell
143+
$ id username
144+
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
145+
```
146+
147+
## Support Info
148+
149+
* Shell access whilst the container is running: `docker exec -it arr-in-one /bin/bash`
150+
* To monitor the logs of the container in realtime: `docker logs -f arr-in-one`
151+
152+
## Updating Info
153+
154+
Most of our images are static, versioned, and require an image update and container recreation to update the app inside. We do not recommend or support updating apps inside the container.
155+
156+
Below are the instructions for updating containers:
157+
158+
### Via Docker Compose
159+
160+
* Update all images: `docker-compose pull`
161+
* or update a single image: `docker-compose pull arr-in-one`
162+
* Let compose update all containers as necessary: `docker-compose up -d`
163+
* or update a single container: `docker-compose up -d arr-in-one`
164+
* You can also remove the old dangling images: `docker image prune`
165+
166+
### Via Docker Run
167+
168+
* Update the image: `docker pull ghcr.io/thespad/arr-in-one`
169+
* Stop the running container: `docker stop arr-in-one`
170+
* Delete the container: `docker rm arr-in-one`
171+
* 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)
172+
* You can also remove the old dangling images: `docker image prune`
173+
174+
### Image Update Notifications - Diun (Docker Image Update Notifier)
175+
176+
>[!TIP]
177+
>We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
178+
179+
## Building locally
180+
181+
If you want to make local modifications to these images for development purposes or just to customize the logic:
182+
183+
```shell
184+
git clone https://github.com/thespad/docker-arr-in-one.git
185+
cd docker-arr-in-one
186+
docker build \
187+
--no-cache \
188+
--pull \
189+
-t ghcr.io/thespad/arr-in-one:latest .
190+
```
191+
192+
The arm variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
193+
194+
```bash
195+
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
196+
```
57197

58198
## Versions
59199

200+
* **02.02.25:** - Rebase to Alpine 3.21.
60201
* **02.09.24:** - Unpin Prowlarr version.
61202
* **30.08.24:** - Pin Prowlarr version until update endpoint is fixed.
62203
* **26.05.24:** - Rebase to Alpine 3.20.

0 commit comments

Comments
 (0)
Please sign in to comment.