mirror of
https://github.com/offen/docker-volume-backup.git
synced 2024-11-22 21:30:28 +01:00
Frederik Ring
c3daeacecb
* Query for labeled services as well * Try scaling down services * Scale services back up * Use progress tool from Docker CLI * In test, label both services * Clean up error and log messages * Document scale-up/down approach in docs * Downgrade Docker CLI to match client * Document services stats * Do not rely on PreviousSpec for storing desired replica count * Log warnings from Docker when updating services * Check whether container and service labels collide * Document script behavior on label collision * Add additional check if all containers have been removed * Scale services concurrently * Move docker interaction code into own file * Factor out code for service updating * Time out after five minutes of not reaching desired container count * Inline handling of in-swarm container level restart * Timer is more suitable for timeout race * Timeout when scaling down services should be configurable * Choose better filename * Reflect changes in naming * Rename and deprecate BACKUP_STOP_CONTAINER_LABEL * Improve logging * Further simplify logging
58 lines
1.4 KiB
YAML
58 lines
1.4 KiB
YAML
# Copyright 2020-2021 - Offen Authors <hioffen@posteo.de>
|
|
# SPDX-License-Identifier: Unlicense
|
|
|
|
version: '3.8'
|
|
|
|
services:
|
|
minio:
|
|
image: minio/minio:RELEASE.2020-08-04T23-10-51Z
|
|
environment:
|
|
MINIO_ROOT_USER: test
|
|
MINIO_ROOT_PASSWORD: test
|
|
MINIO_ACCESS_KEY: test
|
|
MINIO_SECRET_KEY: GMusLtUmILge2by+z890kQ
|
|
entrypoint: /bin/ash -c 'mkdir -p /data/backup && minio server /data'
|
|
volumes:
|
|
- backup_data:/data
|
|
|
|
backup:
|
|
image: offen/docker-volume-backup:${TEST_VERSION:-canary}
|
|
depends_on:
|
|
- minio
|
|
environment:
|
|
AWS_ACCESS_KEY_ID: test
|
|
AWS_SECRET_ACCESS_KEY: GMusLtUmILge2by+z890kQ
|
|
AWS_ENDPOINT: minio:9000
|
|
AWS_ENDPOINT_PROTO: http
|
|
AWS_S3_BUCKET_NAME: backup
|
|
BACKUP_FILENAME: test.tar.gz
|
|
BACKUP_CRON_EXPRESSION: 0 0 5 31 2 ?
|
|
BACKUP_RETENTION_DAYS: 7
|
|
BACKUP_PRUNING_LEEWAY: 5s
|
|
volumes:
|
|
- pg_data:/backup/pg_data:ro
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
|
|
offen:
|
|
image: offen/offen:latest
|
|
deploy:
|
|
labels:
|
|
- docker-volume-backup.stop-during-backup=true
|
|
replicas: 2
|
|
|
|
pg:
|
|
image: postgres:14-alpine
|
|
environment:
|
|
POSTGRES_PASSWORD: example
|
|
volumes:
|
|
- pg_data:/var/lib/postgresql/data
|
|
deploy:
|
|
labels:
|
|
- docker-volume-backup.stop-during-backup=true
|
|
|
|
volumes:
|
|
backup_data:
|
|
name: backup_data
|
|
pg_data:
|
|
name: pg_data
|