File tree Expand file tree Collapse file tree 4 files changed +98
-0
lines changed
Expand file tree Collapse file tree 4 files changed +98
-0
lines changed Original file line number Diff line number Diff line change 1+ # 设置环境变量示例
2+ MYSQL_ROOT_PASSWORD=
3+ MYSQL_DATABASE=tiny_engine_data_java
4+
5+
Original file line number Diff line number Diff line change 1+ name : te_java_services_mysql
2+
3+ services :
4+ mysql :
5+ env_file :
6+ - .env
7+ container_name : te_java_mysql
8+ image : mysql:8
9+ command : --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
10+ restart : always
11+ environment :
12+ MYSQL_ROOT_PASSWORD : ${MYSQL_ROOT_PASSWORD:-}
13+ MYSQL_ALLOW_EMPTY_PASSWORD : " yes"
14+ MYSQL_DATABASE : ${MYSQL_DATABASE:-tiny_engine_data_java}
15+ volumes :
16+ - te-java-mysql-volumes:/var/lib/mysql
17+ ports :
18+ - 3306:3306
19+ networks :
20+ - te-java-mysql
21+
22+ # database explorer
23+ phpmyadmin :
24+ env_file :
25+ - .env
26+ image : phpmyadmin
27+ # for arm64 macos
28+ # image: arm64v8/phpmyadmin
29+ restart : always
30+ environment :
31+ MYSQL_ROOT_PASSWORD : ${MYSQL_ROOT_PASSWORD:-}
32+ MYSQL_ALLOW_EMPTY_PASSWORD : " yes"
33+ MYSQL_DATABASE : ${MYSQL_DATABASE:-tiny_engine_data_java}
34+ PMA_HOST : " mysql"
35+ ports :
36+ - 8080:80
37+ networks :
38+ - te-java-mysql
39+ depends_on :
40+ - mysql
41+
42+ volumes :
43+ te-java-mysql-volumes :
44+
45+ networks :
46+ te-java-mysql :
47+ name : te-java-mysql
48+ driver : bridge
Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+
3+ # set -ex
4+ # 复制 sql script 到 docker 容器内部
5+ docker cp init_database_mysql.sh te_java_mysql:/tmp/
6+ docker cp ./app/src/main/resources/sql/mysql te_java_mysql:/tmp/sql
7+ # 在 docker 容器内部执行 script
8+ docker exec te_java_mysql sh -c " chmod +x /tmp/init_database_mysql.sh && /tmp/init_database_mysql.sh"
Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+
3+ # set -ex
4+
5+ # read variables from environment
6+ db_host=${TE_DATABASE_HOST:- 127.0.0.1}
7+ db_port=${TE_DATABASE_PORT:- 3306}
8+ db_username=${TE_DATABASE_USER:- root}
9+ db_password=${TE_DATABASE_PASSWORD:- } # default to empty password
10+ db_name=${TE_DATABASE_NAME:- tiny_engine_data_java}
11+
12+ # prepare MySQL param
13+ param=" --default-character-set=utf8mb4 -h $db_host -P $db_port -u $db_username "
14+ if [ -n " $db_password " ]; then
15+ param=" $param -p$db_password "
16+ fi
17+
18+
19+ # reset database
20+ echo " init database $db_name in local"
21+ mysql $param -e " DROP DATABASE IF EXISTS $db_name "
22+ mysql $param -e " CREATE DATABASE $db_name CHARACTER SET utf8mb4"
23+
24+
25+
26+ # find all sql files and sort
27+ sql_files=$( ls /tmp/sql/* .sql | sort)
28+ echo " 🤖 Running the following SQL files:"
29+
30+ # execute sql files
31+ for file in $sql_files ; do
32+ echo " 🔖 Running $file ..."
33+ mysql $param $db_name < " $file "
34+ done
35+
36+ echo " 🎉 prepare database $db_name done"
37+ mysql $param -e " USE $db_name ; SHOW TABLES;"
You can’t perform that action at this time.
0 commit comments