This commit is contained in:
parent
7be856f829
commit
781b25c2e8
7 changed files with 51 additions and 13 deletions
|
@ -28,7 +28,6 @@ RUN \
|
||||||
/var/tmp/*
|
/var/tmp/*
|
||||||
|
|
||||||
|
|
||||||
# copy files to container
|
|
||||||
# copy files to container
|
# copy files to container
|
||||||
COPY docker/rootfs /
|
COPY docker/rootfs /
|
||||||
COPY mangadlp/ /app/mangadlp/
|
COPY mangadlp/ /app/mangadlp/
|
||||||
|
|
|
@ -28,7 +28,6 @@ RUN \
|
||||||
/var/tmp/*
|
/var/tmp/*
|
||||||
|
|
||||||
|
|
||||||
# copy files to container
|
|
||||||
# copy files to container
|
# copy files to container
|
||||||
COPY docker/rootfs /
|
COPY docker/rootfs /
|
||||||
COPY mangadlp/ /app/mangadlp/
|
COPY mangadlp/ /app/mangadlp/
|
||||||
|
|
|
@ -33,6 +33,8 @@ docker run -e PUID=<userid> -e PGID=<groupid>
|
||||||
|
|
||||||
## Run commands in container
|
## Run commands in container
|
||||||
|
|
||||||
|
> You don't need to use the full path of manga-dlp.py because `/app` already is the working directory
|
||||||
|
|
||||||
You can simply use the `docker exec` command to run the scripts like normal.
|
You can simply use the `docker exec` command to run the scripts like normal.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
@ -41,21 +43,42 @@ docker exec <container name> python3 manga-dlp.py <options>
|
||||||
|
|
||||||
## Run your own schedule
|
## Run your own schedule
|
||||||
|
|
||||||
The default config runs manga-dlp.py once a day at 03:00 and fetches every chapter of the mangas listed in the file
|
The default config runs `manga-dlp.py` once a day at 12:00 and fetches every chapter of the mangas listed in the file
|
||||||
mangas.txt in the root directory of this repo.
|
`mangas.txt` in the root directory of this repo.
|
||||||
|
|
||||||
To use your own schedule you need to mount (override) the default crontab or add new ones to the cron directory.
|
#### The default options used are:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
--read mangas.txt
|
||||||
|
--chapters all
|
||||||
|
--path /app/downloads
|
||||||
|
--wait 2
|
||||||
|
```
|
||||||
|
|
||||||
|
To use your own schedule you need to mount (override) the default schedule or add new ones to the crontab.
|
||||||
|
|
||||||
|
> Don't forget to add the cron entries for every new schedule
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
# docker-compose.yml
|
# docker-compose.yml
|
||||||
volumes:
|
volumes:
|
||||||
- ./crontab:/etc/cron.d/01_mangadlp # overwrites the default one
|
- ./crontab:/etc/cron.d/01_mangadlp # overwrites the default crontab
|
||||||
- ./crontab2:/etc/cron.d/02_something # adds a new one
|
- ./crontab2:/etc/cron.d/02_something # adds a new one crontab file
|
||||||
|
- ./schedule1:/app/schedules/daily # overwrites the default schedule
|
||||||
|
- ./schedule2:/app/schedules/weekly # adds a new schedule
|
||||||
```
|
```
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
docker run -v ./crontab:/etc/cron.d/01_mangadlp # overwrites the default one
|
docker run -v ./crontab:/etc/cron.d/01_mangadlp # overwrites the default crontab
|
||||||
docker run -v ./crontab2:/etc/cron.d/02_something # adds a new one
|
docker run -v ./crontab2:/etc/cron.d/02_something # adds a new one crontab file
|
||||||
|
docker run -v ./schedule1:/app/schedules/daily # overwrites the default schedule
|
||||||
|
docker run -v ./schedule2:/app/schedules/weekly # adds a new schedule
|
||||||
|
```
|
||||||
|
|
||||||
|
#### The default crontab file:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
0 12 * * * root /app/schedule > /proc/1/fd/1 2>&1
|
||||||
```
|
```
|
||||||
|
|
||||||
## Add mangas to mangas.txt
|
## Add mangas to mangas.txt
|
||||||
|
@ -77,15 +100,15 @@ docker run -v ./mangas.txt:/app/mangas.txt
|
||||||
|
|
||||||
Per default as in the script, it downloads everything to "downloads" in the scripts root directory. This data does not
|
Per default as in the script, it downloads everything to "downloads" in the scripts root directory. This data does not
|
||||||
persist with container recreation, so you need to mount it. This is already done in the quick start section. If you want
|
persist with container recreation, so you need to mount it. This is already done in the quick start section. If you want
|
||||||
to change the path of the host, simply change `./media/mangas/` to a path of your choice.
|
to change the path of the host, simply change `./downloads/` to a path of your choice.
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
# docker-compose.yml
|
# docker-compose.yml
|
||||||
volumes:
|
volumes:
|
||||||
- ./media/mangas/:/app/downloads
|
- ./downloads/:/app/downloads
|
||||||
```
|
```
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
docker run -v ./media/mangas/:/app/downloads
|
docker run -v ./downloads/:/app/downloads
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,8 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- ./downloads/:/app/downloads/ # default manga download directory
|
- ./downloads/:/app/downloads/ # default manga download directory
|
||||||
- ./mangas.txt:/app/mangas.txt # default file for manga links to download
|
- ./mangas.txt:/app/mangas.txt # default file for manga links to download
|
||||||
|
#- ./crontab:/etc/cron.d/mangadlp # path to default crontab
|
||||||
|
#- ./schedule:/app/schedules/daily # path to the default schedule which is run daily
|
||||||
environment:
|
environment:
|
||||||
- TZ=Europe/Zurich
|
- TZ=Europe/Zurich
|
||||||
# - PUID= # custom userid - defaults to 4444
|
# - PUID= # custom userid - defaults to 4444
|
||||||
|
|
7
docker/rootfs/app/schedules/daily
Executable file
7
docker/rootfs/app/schedules/daily
Executable file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
exec s6-setuidgid abc python3 /app/manga-dlp.py \
|
||||||
|
--path /app/downloads \
|
||||||
|
--read /app/mangas.txt \
|
||||||
|
--chapters all \
|
||||||
|
--wait 2
|
|
@ -10,3 +10,6 @@ find '/app' -type 'f' \( -not -perm 664 -and -not -path '/app/downloads*' \) -ex
|
||||||
|
|
||||||
find '/app' \( -not -user abc -and -not -path '/app/downloads*' \) -exec chown abc '{}' \+
|
find '/app' \( -not -user abc -and -not -path '/app/downloads*' \) -exec chown abc '{}' \+
|
||||||
find '/app' \( -not -group abc -and -not -path '/app/downloads*' \) -exec chown :abc '{}' \+
|
find '/app' \( -not -group abc -and -not -path '/app/downloads*' \) -exec chown :abc '{}' \+
|
||||||
|
|
||||||
|
# fix schedules
|
||||||
|
chmod -R +x /app/schedules
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
|
SHELL=/bin/bash
|
||||||
|
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||||
|
|
||||||
# default crontab to run manga-dlp once a day
|
# default crontab to run manga-dlp once a day
|
||||||
# and get all (new) chapters of the mangas in
|
# and get all (new) chapters of the mangas in
|
||||||
# the file mangas.txt
|
# the file mangas.txt
|
||||||
|
# "/proc/1/fd/1 2>&1" is to show the logs in the container
|
||||||
|
|
||||||
|
0 12 * * * root /app/schedule > /proc/1/fd/1 2>&1
|
||||||
|
|
||||||
0 3 * * * abc python3 /app/manga-dlp.py --read /app/mangas.txt -c all --wait 2
|
|
||||||
|
|
Loading…
Reference in a new issue