| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- 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
|