version: "2.1"
services:
    backup_owncloud:
        build:
            context: .
            dockerfile: Dockerfile-mysql
        image: filament/duplicity:mysql
        hostname: {{ inventory_hostname_short | lower | regex_replace('_','') }}-owcnloud
        environment:
            DST: "swift://owncloud_{{ inventory_hostname|lower }}"
            MYSQL_DATABASE: {{ cloud_db_user }}
            MYSQL_USER: {{ cloud_db_user }}
            MYSQL_PASSWORD: {{ cloud_db_pass }}
            MYSQL_HOST: db
            PASSPHRASE: "{{ cloud_backup_pass | default(cloud_db_pass) }}"
            SWIFT_USERNAME: "{{ swift_cloud_username }}"
            SWIFT_PASSWORD: "{{ swift_cloud_password }}"
            SWIFT_AUTHURL: "{{ swift_cloud_authurl }}"
            SWIFT_AUTHVERSION: {{ swift_cloud_authversion }}
            SWIFT_TENANTNAME: "{{ swift_cloud_tenantname }}"
            SWIFT_TENANTID: "{{ swift_cloud_tenantid }}"
            SWIFT_REGIONNAME: "{{ swift_cloud_regionname }}"
            JOB_300_WHAT: "mysqldump -h $$MYSQL_HOST -u $$MYSQL_USER -p$$MYSQL_PASSWORD $$MYSQL_DATABASE --result-file='$$SRC/mysql_$${MYSQL_HOST}_$$MYSQL_DATABASE.sql' && dup full $$SRC $$DST && rm '$$SRC/mysql_$${MYSQL_HOST}_$$MYSQL_DATABASE.sql'"
            JOB_300_WHEN: "weekly"
            JOB_302_WHAT: "dup remove-all-but-n-full 5 --force $$DST $$@"
            JOB_302_WHEN: "weekly"
        volumes:
            - owncloud_owncloud:/mnt/backup/src/owncloud:z
            - ./owncloud:/backups
        networks:
            - owncloud_default
            - public
        command:
            - /etc/periodic/weekly/jobrunner

networks:
    owncloud_default:
        external: true
    public:
        driver_opts:
            encrypted: 1

volumes:
    owncloud_owncloud:
        external: true