docker instead of nerdctl and minor changes

This commit is contained in:
julien
2025-10-07 13:20:09 +02:00
parent 338655642a
commit 0b5644d59e
5 changed files with 14 additions and 17 deletions

View File

@@ -1,9 +1,6 @@
# srv-scripts # srv-scripts
Execute `sync.sh` to copy scripts on the server. Execute `sync.sh` to copy these scripts on the server.
>
> `vol-restore` is not yet finished !
## Cron ## Cron
@@ -12,5 +9,5 @@ Add this line into the host crontab with `crontab -e`.
PATH=/usr/local/bin:/usr/bin PATH=/usr/local/bin:/usr/bin
# Backup volumes every days at 4am # Backup volumes every days at 4am
0 4 * * * /usr/local/bin/vol-backup-all.sh 0 4 * * * /usr/local/bin/vol-backup-all
``` ```

View File

@@ -8,21 +8,21 @@ if [ -d "volumes" ]; then
# Dump mysql # Dump mysql
if [ -d "volumes/mysql" ]; then if [ -d "volumes/mysql" ]; then
CONTAINER_NAME=$(echo ${PWD##*/} | sed -e 's/\.//g')_mariadb CONTAINER_NAME=$(echo ${PWD##*/} | sed -e 's/\.//g')_mariadb
DB_USER=$(nerdctl exec $CONTAINER_NAME bash -c 'echo "$MYSQL_USER"') DB_USER=$(docker exec $CONTAINER_NAME bash -c 'echo "$MYSQL_USER"')
DB_PASSWORD=$(nerdctl exec $CONTAINER_NAME bash -c 'echo "$MYSQL_PASSWORD"') DB_PASSWORD=$(docker exec $CONTAINER_NAME bash -c 'echo "$MYSQL_PASSWORD"')
DB_NAME=$(nerdctl exec $CONTAINER_NAME bash -c 'echo "$MYSQL_DATABASE"') DB_NAME=$(docker exec $CONTAINER_NAME bash -c 'echo "$MYSQL_DATABASE"')
DUMP_NAME=datadump.sql DUMP_NAME=datadump.sql
nerdctl exec -e MYSQL_PWD=$DB_PASSWORD $CONTAINER_NAME mariadb-dump -u $DB_USER $DB_NAME > volumes/$DUMP_NAME docker exec -e MYSQL_PWD=$DB_PASSWORD $CONTAINER_NAME mariadb-dump -u $DB_USER $DB_NAME > volumes/$DUMP_NAME
fi fi
# Dump postgres # Dump postgres
if [ -d "volumes/postgres" ]; then if [ -d "volumes/postgres" ]; then
CONTAINER_NAME=$(echo ${PWD##*/} | sed -e 's/\.//g')_postgres CONTAINER_NAME=$(echo ${PWD##*/} | sed -e 's/\.//g')_postgres
DB_USER=$(nerdctl exec $CONTAINER_NAME bash -c 'echo "$POSTGRES_USER"') DB_USER=$(docker exec $CONTAINER_NAME bash -c 'echo "$POSTGRES_USER"')
DB_PASSWORD=$(nerdctl exec $CONTAINER_NAME bash -c 'echo "$POSTGRES_PASSWORD"') DB_PASSWORD=$(docker exec $CONTAINER_NAME bash -c 'echo "$POSTGRES_PASSWORD"')
DB_NAME=$(nerdctl exec $CONTAINER_NAME bash -c 'echo "$POSTGRES_DATABASE"') DB_NAME=$(docker exec $CONTAINER_NAME bash -c 'echo "$POSTGRES_DATABASE"')
DUMP_NAME=datadump.sql DUMP_NAME=datadump.sql
nerdctl exec -e PGPASSWORD=$DB_PASSWORD $CONTAINER_NAME pg_dump -U $DB_USER $DB_NAME > volumes/$DUMP_NAME docker exec -e PGPASSWORD=$DB_PASSWORD $CONTAINER_NAME pg_dump -U $DB_USER $DB_NAME > volumes/$DUMP_NAME
fi fi
# Compress all volumes excerpt mysql and postgres # Compress all volumes excerpt mysql and postgres

View File

@@ -2,5 +2,5 @@
for d in /srv/*/; do for d in /srv/*/; do
cd $d cd $d
vol-backup.sh vol-backup
done done

View File

@@ -16,9 +16,9 @@ tar --zstd --same-owner -xvf $BACKUP -C volumes
# Start the service and populate db from sql file if needed # Start the service and populate db from sql file if needed
if [ -f "compose.db-restore.yml" ] if [ -f "compose.db-restore.yml" ]
then then
nerdctl compose -f compose.yml -f compose.db-restore.yml up -d docker compose -f compose.yml -f compose.db-restore.yml up -d
else else
nerdctl compose up -d docker compose up -d
fi fi
# Clean backup files # Clean backup files

View File

@@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
cp bin/* /usr/local/bin cp scripts/* /usr/local/sbin