version: "3.3" services: database: image: docker.io/library/mariadb volumes: my_vol: labels: # - if executed inside a service, commands have the same environment vars available # - the volume will be cleared before restoring # - the command will always be executed where the volume is mounted # - you can access secrets in files by using $(cat $SECRET_FILE) # === Backups # - backup/restore commands need to write to STDOUT / read from STDIN # enable backups of this volume (defaults to true) work.banananet.podman.backup.enable: "true" # container/service to run commands in (takes precedence over .image) # service will ignore .stop if required work.banananet.podman.backup.container: database # image to use to run commands (by default docker.io/library/debian:stable) work.banananet.podman.backup.image: NONE # mount target if backup is run in the image (defaults to /_volume) work.banananet.podman.backup.mount-target: /myvol # will stop compose to backup/restore volume (true/false, true by default) work.banananet.podman.backup.stop: "true" # backup command, executed in .container/.image work.banananet.podman.backup.backup-cmd: >- mysqldump --all-databases # restore command, executed in .container/.image work.banananet.podman.backup.restore-cmd: >- mysql --user=root --password=$MARIADB_ROOT_PASSWORD # === Compressing # - both commands must read from STDIN and write to STDOUT # - you may also compress inside the orignal container, this allows to compress outside or using another image # image to run compress commands in (defaults to host) work.banananet.podman.backup.compress-image: # meaning host # command to compress backup (none by default) work.banananet.podman.backup.compress-cmd: gzip -9 - # command to decompress backup on restore ("<.compress-cmd> -d" or none by default) work.banananet.podman.backup.decompress-cmd: gzip -9 -d -