docker swarm

This commit is contained in:
marsal
2024-06-05 13:13:44 +08:00
parent d6dca2b585
commit 70f90c1d03
8912 changed files with 1269849 additions and 560260 deletions

View File

@ -0,0 +1,50 @@
生产环境用于nacos xxl-job的专用数据库
# prod环境下 部署 附属工具类服务使用的mysql
env $(cat ./env_prod | xargs) envsubst < ./docker-compose.yml | docker stack deploy --compose-file - prod_tool_mysql
[mysqladmin]
user=
[mysqld]
skip_name_resolve
explicit_defaults_for_timestamp
basedir=/opt/bitnami/mysql
port=3306
tmpdir=/opt/bitnami/mysql/tmp
socket=/opt/bitnami/mysql/tmp/mysql.sock
pid_file=/opt/bitnami/mysql/tmp/mysqld.pid
max_allowed_packet=16M
bind_address=0.0.0.0
log_error=/opt/bitnami/mysql/logs/mysqld.log
slow_query_log=0
slow_query_log_file=/opt/bitnami/mysql/logs/mysqld.log
long_query_time=10
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
plugin_dir=/opt/bitnami/mysql/lib/plugin
[client]
port=3306
socket=/opt/bitnami/mysql/tmp/mysql.sock
default_character_set=utf8mb4
plugin_dir=/opt/bitnami/mysql/lib/plugin
[manager]
port=3306
socket=/opt/bitnami/mysql/tmp/mysql.sock
pid_file=/opt/bitnami/mysql/tmp/mysqld.pid
---- 实际版本
[mysqld]
max_connections=500
max_allowed_packet=64M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=209

View File

@ -0,0 +1,91 @@
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}

View File

@ -0,0 +1,9 @@
NAMESPACE=prod
NODE_PORT_MASTER=25306
NODE_PORT_SLAVE=25307
MYSQL_USER=zd_tool
MYSQL_PASSWORD=gkxl2024#@
MYSQL_ROOT_PASSWORD=gkxl2024#@
MYSQL_REPLICATION_PASSWORD=gkxl2024#@
CUSTOME_CONFIG_MASTER=prod_tool_mysql_master_conf_v1
CUSTOME_CONFIG_SLAVE=prod_tool_mysql_slave_conf_v1