Files
sa-charts/docker-swarm/mysql-repl-tool/docker-compose.yml
2024-06-05 13:13:44 +08:00

91 lines
2.8 KiB
YAML

version: '3.8'
networks:
default:
name: ${NAMESPACE}
external: true
services:
mysql-master:
image: docker.io/bitnami/mysql:8.0
hostname: ${NAMESPACE}-tool-mysql-master
ports:
- '${NODE_PORT_MASTER}:3306'
volumes:
- 'mysql_repl_master_data:/bitnami/mysql/data'
environment:
- MYSQL_REPLICATION_MODE=master
- MYSQL_REPLICATION_USER=repl_user
- MYSQL_REPLICATION_PASSWORD=${MYSQL_REPLICATION_PASSWORD}
# - MYSQL_DATABASE=my_database
# ALLOW_EMPTY_PASSWORD is recommended only for development.
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_AUTHENTICATION_PLUGIN=mysql_native_password
- MYSQL_ENABLE_SLOW_QUERY=0
- MYSQL_LONG_QUERY_TIME=10
configs:
- source: custome_config_master
target: /opt/bitnami/mysql/conf/my_custom.cnf
healthcheck:
test: ['CMD', '/opt/bitnami/scripts/mysql/healthcheck.sh']
interval: 15s
timeout: 5s
retries: 6
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.hostname == ZD-CRM2]
mysql-slave:
image: docker.io/bitnami/mysql:8.0
hostname: ${NAMESPACE}-tool-mysql-slave
ports:
- '${NODE_PORT_SLAVE}:3306'
volumes:
- 'mysql_repl_slave_data:/bitnami/mysql/data'
depends_on:
- mysql-master
environment:
- MYSQL_REPLICATION_MODE=slave
- MYSQL_REPLICATION_USER=repl_user
- MYSQL_REPLICATION_PASSWORD=${MYSQL_REPLICATION_PASSWORD}
# - MYSQL_DATABASE=my_database
- MYSQL_MASTER_HOST=mysql-master
- MYSQL_MASTER_PORT_NUMBER=3306
- MYSQL_MASTER_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_AUTHENTICATION_PLUGIN=mysql_native_password
- MYSQL_ENABLE_SLOW_QUERY=0
- MYSQL_LONG_QUERY_TIME=10
# ALLOW_EMPTY_PASSWORD is recommended only for development.
# - ALLOW_EMPTY_PASSWORD=yes
# In case of missing binary files on master, use `true` to reset those binary files. Creating a previous backup is recommended.
- MYSQL_REPLICATION_SLAVE_DUMP=false
healthcheck:
test: ['CMD', '/opt/bitnami/scripts/mysql/healthcheck.sh']
interval: 15s
timeout: 5s
retries: 6
configs:
- source: custome_config_slave
target: /opt/bitnami/mysql/conf/my_custom.cnf
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.hostname == ZD-CRM3]
volumes:
mysql_repl_master_data:
driver: local
mysql_repl_slave_data:
driver: local
configs:
custome_config_master:
external: true
name: ${CUSTOME_CONFIG_MASTER}
custome_config_slave:
external: true
name: ${CUSTOME_CONFIG_SLAVE}