fix docker container
All checks were successful
ci/woodpecker/push/tests Pipeline was successful

This commit is contained in:
Ivan Schaller 2022-05-29 19:11:38 +02:00
parent 7be856f829
commit 781b25c2e8
7 changed files with 51 additions and 13 deletions

View file

@ -28,7 +28,6 @@ RUN \
/var/tmp/*
# copy files to container
# copy files to container
COPY docker/rootfs /
COPY mangadlp/ /app/mangadlp/

View file

@ -28,7 +28,6 @@ RUN \
/var/tmp/*
# copy files to container
# copy files to container
COPY docker/rootfs /
COPY mangadlp/ /app/mangadlp/

View file

@ -33,6 +33,8 @@ docker run -e PUID=<userid> -e PGID=<groupid>
## 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.
```sh
@ -41,21 +43,42 @@ docker exec <container name> python3 manga-dlp.py <options>
## 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
mangas.txt in the root directory of this repo.
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.
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
# docker-compose.yml
volumes:
- ./crontab:/etc/cron.d/01_mangadlp # overwrites the default one
- ./crontab2:/etc/cron.d/02_something # adds a new one
- ./crontab:/etc/cron.d/01_mangadlp # overwrites the default crontab
- ./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
docker run -v ./crontab:/etc/cron.d/01_mangadlp # overwrites the default one
docker run -v ./crontab2:/etc/cron.d/02_something # adds a new 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 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
@ -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
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
# docker-compose.yml
volumes:
- ./media/mangas/:/app/downloads
- ./downloads/:/app/downloads
```
```sh
docker run -v ./media/mangas/:/app/downloads
docker run -v ./downloads/:/app/downloads
```

View file

@ -12,6 +12,8 @@ services:
volumes:
- ./downloads/:/app/downloads/ # default manga download directory
- ./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:
- TZ=Europe/Zurich
# - PUID= # custom userid - defaults to 4444

View 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

View file

@ -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 -group abc -and -not -path '/app/downloads*' \) -exec chown :abc '{}' \+
# fix schedules
chmod -R +x /app/schedules

View file

@ -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
# and get all (new) chapters of the mangas in
# 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