Galera cluster deployment based on docker swarm using Linux Containers (LXC) with automatic deployment via Ansible.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

95 lines
2.3 KiB

version: '3.8'
services:
anode:
image: colinmollenhour/mariadb-galera-swarm
environment:
- XTRABACKUP_PASSWORD_FILE=/run/secrets/xtrabackup_password
- MYSQL_USER=user
- MYSQL_PASSWORD_FILE=/run/secrets/mysql_password
- MYSQL_DATABASE=database
- MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql_root_password
- NODE_ADDRESS=^10.0.10.*
- HEALTHY_WHILE_BOOTING=1
networks:
- mariadb
# ports:
# - mode: host
# target: 4567
# published: 4567
command: node tasks.anode,tasks.bnode
volumes:
- /var/lib/mysql:/var/lib/mysql
deploy:
resources:
limits:
cpus: '0.75'
memory: 250M
reservations:
cpus: '0.5'
memory: 100M
# Replicated mode
mode: replicated
replicas: 1
placement:
# Services must run only on workers with one service per container
max_replicas_per_node: 1
constraints:
- node.labels.node1 == true
- node.role == worker
secrets:
- xtrabackup_password
- mysql_password
- mysql_root_password
bnode:
image: colinmollenhour/mariadb-galera-swarm
environment:
- XTRABACKUP_PASSWORD_FILE=/run/secrets/xtrabackup_password
- NODE_ADDRESS=^10.0.10.*
- HEALTHY_WHILE_BOOTING=1
- MASTER_ADDR
networks:
- mariadb
command: node $MASTER_ADDR,tasks.bnode
# command: node tasks.anode,tasks.bnode
volumes:
- /var/lib/mysql:/var/lib/mysql
deploy:
resources:
limits:
cpus: '0.75'
memory: 250M
reservations:
cpus: '0.5'
memory: 100M
# Replicated mode
mode: replicated
replicas: 1
placement:
# Services must run only on workers with one service per container
max_replicas_per_node: 1
constraints:
- node.labels.node2 == true
- node.role == worker
depends_on:
- anode
secrets:
- xtrabackup_password
#volumes:
# mysql-data:
# name: '{{.Service.Name}}-{{.Task.Slot}}-data'
# driver: local
networks:
mariadb:
external:
name: mariadb
secrets:
xtrabackup_password:
file: .secrets/xtrabackup_password
mysql_password:
file: .secrets/mysql_password
mysql_root_password:
file: .secrets/mysql_root_password