version: '3.4' services: seed: image: colinmollenhour/mariadb-galera-swarm:10.4.11-2020-01-06 environment: - XTRABACKUP_PASSWORD_FILE=/run/secrets/xtrabackup_password - MYSQL_USER=user - MYSQL_PASSWORD_FILE=/run/secrets/mysql_password - MYSQL_DATABASE=drupal - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql_root_password - NODE_ADDRESS=^10.0.*.* networks: - db-network command: seed volumes: - mysql-data:/var/lib/mysql - mariadb_backups:/srv/backups - mariadb_conf:/etc/mysql - /etc/localtime:/etc/localtime secrets: - xtrabackup_password - mysql_password - mysql_root_password deploy: mode: replicated replicas: 1 resources: limits: cpus: '1' memory: 1024M reservations: cpus: '1' memory: 1024M placement: constraints: - node.role == manager - node.hostname == hetzner # <-- Vale oli siin node: image: colinmollenhour/mariadb-galera-swarm:10.4.11-2020-01-06 ports: - target: 3306 published: 3306 protocol: tcp mode: ingress environment: - XTRABACKUP_PASSWORD_FILE=/run/secrets/xtrabackup_password - NODE_ADDRESS=^10.0.*.* - HEALTHY_WHILE_BOOTING=1 networks: - db-network command: node tasks.seed,tasks.node volumes: - mysql-data:/var/lib/mysql - mariadb_backups:/srv/backups - mariadb_conf:/etc/mysql - /etc/localtime:/etc/localtime secrets: - xtrabackup_password deploy: mode: replicated replicas: 1 placement: constraints: - node.role == manager - node.hostname == hetzner # <-- Parandi see "swarm" -> "hetzner" dbclient: image: alpine # depends_on: # <-- Eemalda # - node environment: - BACKUP_ENABLED=1 - BACKUP_INTERVAL=86400 - BACKUP_PATH=/srv/backups - BACKUP_FILENAME=swarm_db_backup_mysql - MYSQL_USER=user - MYSQL_PASSWORD_FILE=/run/secrets/mysql_password secrets: - mysql_password networks: - db-network entrypoint: | sh -c 'sh -s << EOF apk add --no-cache mysql-client while true do if [ $$BACKUP_ENABLED == 1 ] then sleep 1800 echo "Starting backup" mkdir -p $$BACKUP_PATH/$$(date +%F) echo "$$(date +%FT%H.%m) - Making Backup to : $$BACKUP_PATH/$$(date +%F)/$$BACKUP_FILENAME-$$(date +%FT%H.%m).sql.gz" mariadb-dump --skip-ssl -u $$MYSQL_USER -p`cat $$MYSQL_PASSWORD_FILE` -h node --all-databases | gzip > $$BACKUP_PATH/$$(date +%F)/$$BACKUP_FILENAME-$$(date +%FT%H.%m).sql.gz find $$BACKUP_PATH -mtime 7 -delete echo "Next backup will be at " echo $$(date -d@"$$(( `date +%s`+$$BACKUP_INTERVAL))" +%F" "%H:%m) sleep $$BACKUP_INTERVAL fi done EOF' volumes: - mariadb_backups:/srv/backups - /etc/localtime:/etc/localtime deploy: mode: replicated replicas: 1 placement: constraints: - node.role == manager - node.hostname == hetzner # <-- Parandi see "swarm" -> "hetzner" volumes: mysql-data: name: '{{.Service.Name}}-{{.Task.Slot}}-data' driver: local mariadb_backups: name: mariadb_backups external: true mariadb_conf: name: mariadb_conf external: true networks: db-network: external: true secrets: xtrabackup_password: file: .secrets/xtrabackup_password mysql_password: file: .secrets/mysql_password mysql_root_password: file: .secrets/mysql_root_password