version: "3.8" services: app: environment: - MYSQL_HOST=db - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD_FILE=/run/secrets/db_password db: image: "mariadb:10.5" environment: - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD_FILE=/run/secrets/db_password - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db_root_password - MAX_DB_CONNECTIONS=${MAX_DB_CONNECTIONS:-100} configs: - source: my_tune target: /etc/mysql/conf.d/my-tune.cnf secrets: - db_root_password - db_password volumes: - "mariadb:/var/lib/mysql" networks: - internal deploy: labels: backupbot.backup: "true" backupbot.backup.pre-hook: 'mysqldump --single-transaction -u root -p"$$(cat /run/secrets/db_root_password)" nextcloud > /var/lib/mysql/backup.sql' backupbot.backup.post-hook: "rm -rf /var/lib/mysql/backup.sql" backupbot.backup.path: "/var/lib/mysql/backup.sql" healthcheck: test: ["CMD-SHELL", 'mysqladmin -p"$$(cat /run/secrets/db_root_password)" ping'] interval: 30s timeout: 10s retries: 10 start_period: 1m configs: my_tune: name: ${STACK_NAME}_my_cnf_${MY_CNF_VERSION} file: my-tune.cnf template_driver: golang secrets: db_root_password: external: true name: ${STACK_NAME}_db_root_password_${SECRET_DB_ROOT_PASSWORD_VERSION} volumes: mariadb: