v0.0.0
This commit is contained in:
11
.env.example
Normal file
11
.env.example
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
MariaDB__MYSQL_ROOT_PASSWORD=MyRootPass
|
||||||
|
MariaDB__MYSQL_DATABASE=gitea
|
||||||
|
MariaDB__MYSQL_USER=gitea
|
||||||
|
MariaDB__MYSQL_PASSWORD=MyPass
|
||||||
|
MariaDB__CLUSTER_NAME=mariadb_cluster
|
||||||
|
MariaDB__CLUSTER_ADDRESS=gcomm://192.168.1.101,192.168.1.102,192.168.1.103
|
||||||
|
MariaDB__NODE_NAME=SVR01
|
||||||
|
MariaDB__NODE_ADDRESS=192.168.1.101
|
||||||
|
|
||||||
|
# 初次啟動 Bootstrap
|
||||||
|
MariaDB__BOOTSTRAP=false
|
||||||
15
.gitattributes
vendored
Normal file
15
.gitattributes
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# 所有 Shell 腳本用 LF
|
||||||
|
*.sh text eol=lf
|
||||||
|
|
||||||
|
# Docker 設定與腳本
|
||||||
|
Dockerfile text eol=lf
|
||||||
|
*.yaml text eol=lf
|
||||||
|
*.yml text eol=lf
|
||||||
|
|
||||||
|
# Laravel & PHP 設定檔
|
||||||
|
*.conf text eol=lf
|
||||||
|
*.ini text eol=lf
|
||||||
|
.env* text eol=lf
|
||||||
|
|
||||||
|
# 其他你專案內的自定義目錄內腳本
|
||||||
|
docker/** text eol=lf
|
||||||
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
data
|
||||||
|
*.cnf
|
||||||
|
.env
|
||||||
10
Dockerfile
Normal file
10
Dockerfile
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
FROM mariadb:latest
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y gettext-base netcat-openbsd && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
COPY conf.d/galera.cnf.template /etc/mysql/conf.d/galera.cnf.template
|
||||||
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
|
RUN chmod +x /entrypoint.sh
|
||||||
|
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
|
CMD ["mariadbd"]
|
||||||
20
conf.d/galera.cnf.template
Normal file
20
conf.d/galera.cnf.template
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
[mysqld]
|
||||||
|
# 基本設定
|
||||||
|
bind-address=0.0.0.0
|
||||||
|
binlog_format=ROW
|
||||||
|
default_storage_engine=InnoDB
|
||||||
|
innodb_autoinc_lock_mode=2
|
||||||
|
innodb_flush_log_at_trx_commit=0
|
||||||
|
query_cache_size=0
|
||||||
|
query_cache_type=0
|
||||||
|
|
||||||
|
# Galera Cluster
|
||||||
|
wsrep_on=ON
|
||||||
|
wsrep_provider=/usr/lib/galera/libgalera_smm.so
|
||||||
|
wsrep_node_name="${MariaDB__NODE_NAME}"
|
||||||
|
wsrep_node_address="${MariaDB__NODE_ADDRESS}"
|
||||||
|
wsrep_cluster_name="${MariaDB__CLUSTER_NAME}"
|
||||||
|
wsrep_cluster_address="${MariaDB__CLUSTER_ADDRESS}"
|
||||||
|
|
||||||
|
# SST (State Snapshot Transfer)
|
||||||
|
wsrep_sst_method=rsync
|
||||||
32
docker-compose.yml
Normal file
32
docker-compose.yml
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
services:
|
||||||
|
mariadb:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
container_name: ${MariaDB__NODE_NAME}
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
MARIADB_ROOT_PASSWORD: ${MariaDB__MYSQL_ROOT_PASSWORD}
|
||||||
|
MARIADB_DATABASE: ${MariaDB__MYSQL_DATABASE}
|
||||||
|
MARIADB_USER: ${MariaDB__MYSQL_USER}
|
||||||
|
MARIADB_PASSWORD: ${MariaDB__MYSQL_PASSWORD}
|
||||||
|
MariaDB__BOOTSTRAP: ${MariaDB__BOOTSTRAP}
|
||||||
|
MariaDB__NODE_NAME: ${MariaDB__NODE_NAME}
|
||||||
|
MariaDB__NODE_ADDRESS: ${MariaDB__NODE_ADDRESS}
|
||||||
|
MariaDB__CLUSTER_NAME: ${MariaDB__CLUSTER_NAME}
|
||||||
|
MariaDB__CLUSTER_ADDRESS: ${MariaDB__CLUSTER_ADDRESS}
|
||||||
|
volumes:
|
||||||
|
- ./data:/var/lib/mysql
|
||||||
|
- ./conf.d:/etc/mysql/conf.d
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
||||||
|
- "4567:4567"
|
||||||
|
- "4567:4567/udp"
|
||||||
|
- "4568:4568"
|
||||||
|
- "4444:4444"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: mariadb_net
|
||||||
14
entrypoint.sh
Normal file
14
entrypoint.sh
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# 生成最終的 galera.cnf
|
||||||
|
# 只替換指定變數
|
||||||
|
envsubst '${MariaDB__NODE_NAME} ${MariaDB__NODE_ADDRESS} ${MariaDB__CLUSTER_NAME} ${MariaDB__CLUSTER_ADDRESS}' \
|
||||||
|
< /etc/mysql/conf.d/galera.cnf.template > /etc/mysql/conf.d/galera.cnf
|
||||||
|
|
||||||
|
if [ "${MariaDB__BOOTSTRAP}" = "true" ]; then
|
||||||
|
echo "[INFO] Bootstrapping Galera cluster..."
|
||||||
|
exec docker-entrypoint.sh mariadbd --wsrep-new-cluster
|
||||||
|
else
|
||||||
|
exec docker-entrypoint.sh "$@"
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user