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}