continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build encountered an error Details
This Time, It's Easily Configurable
Automatically take backups from running Docker Swarm services into a volume.
There are lots of Docker volume backup systems; all of them have one or both of these limitations:
- You need to define all the volumes to back up in the configuration system
- Backups require services to be stopped to take consistent copies
Backupbot II tries to help, by
- letting you define backups using Docker labels, so you can easily collect your backups for use with another system like docker-volume-backup.
- running pre- and post-commands before and after backups, for example to use database tools to take a backup from a running service.
With Co-op Cloud
- Set up Docker Swarm and
abra app new backup-bot-two
abra app config <your-app-name>, and set storage options. Either configure
CRON_SCHEDULE, or set up
abra app secret generate <your-app-name> restic-password v1, optionally with
<your-app-name>to save the generated secret in
abra app secret insert <your-app-name> ssh-key v1 ...or similar, to load required secrets.
abra app deploy <your-app-name>
- Category: Utilities
- Status: 0, work-in-progress
thecoopcloud/backup-bot-two, 4, upstream
- Healthcheck: No
- Backups: N/A
- Email: N/A
- Tests: No
- SSO: N/A
Like Traefik, or
swarm-cronjob, Backupbot II uses access to the Docker socket to read labels from running Docker Swarm services:
services: db: deploy: labels: backupbot.backup: "true" backupbot.backup.pre-hook: 'mysqldump -u root -p"$(cat /run/secrets/db_root_password)" -f /tmp/dump/dump.db' backupbot.backup.post-hook: "rm -rf /tmp/dump/dump.db" backupbot.backup.path: "/tmp/dump/,/etc/foo/"
backupbot.backup-- set to
trueto back up this service (REQUIRED)
backupbot.backup.path-- comma separated list of file paths within the service to copy (REQUIRED)
backupbot.backup.pre-hook-- command to run before copying files (optional)
backupbot.backup.post-hook-- command to run after copying files (optional)
As in the above example, you can reference Docker Secrets, e.g. for looking up database passwords, by reading the files in
cp .envrc.sample .envrc
.envrcas appropriate, including setting
DOCKER_CONTEXTto a remote Docker context, if you're not running a swarm server locally.
./backup.sh-- you can add the
--skip-uploadoptions if you just want to test one other step