49 lines
1.8 KiB
Bash
Executable File
49 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
|
|
mkdir -p \
|
|
"$ROOT_DIR/.local-run/mysql/data" \
|
|
"$ROOT_DIR/.local-run/redis/data" \
|
|
"$ROOT_DIR/.local-run/mongo/data" \
|
|
"$ROOT_DIR/.local-run/zookeeper/data" \
|
|
"$ROOT_DIR/.local-run/zookeeper/datalog" \
|
|
"$ROOT_DIR/.local-run/storage"
|
|
|
|
docker compose -f "$ROOT_DIR/.local-run/docker-compose.yml" up -d
|
|
|
|
for _ in $(seq 1 60); do
|
|
if docker inspect --format '{{if .State.Health}}{{.State.Health.Status}}{{else}}{{.State.Status}}{{end}}' likei-local-mysql 2>/dev/null | rg '^healthy$' >/dev/null 2>&1; then
|
|
break
|
|
fi
|
|
sleep 2
|
|
done
|
|
|
|
for sql_file in "$ROOT_DIR"/.local-run/mysql/init/*.sql; do
|
|
docker exec -i likei-local-mysql mysql -h127.0.0.1 -uroot -proot \
|
|
< "$sql_file" >/dev/null
|
|
done
|
|
|
|
docker exec likei-local-mysql mysql -h127.0.0.1 -uroot -proot \
|
|
-e "CREATE DATABASE IF NOT EXISTS nacos_config DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci;" >/dev/null
|
|
NACOS_TABLE_COUNT="$(docker exec likei-local-mysql mysql -N -B -h127.0.0.1 -uroot -proot \
|
|
-e "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'nacos_config';")"
|
|
if [[ "${NACOS_TABLE_COUNT:-0}" == "0" ]]; then
|
|
docker exec -i likei-local-mysql mysql -h127.0.0.1 -uroot -proot nacos_config \
|
|
< "$ROOT_DIR/.local-run/nacos-dist/nacos/conf/mysql-schema.sql" >/dev/null
|
|
fi
|
|
|
|
for _ in $(seq 1 60); do
|
|
if docker compose -f "$ROOT_DIR/.local-run/docker-compose.yml" ps --format json 2>/dev/null | rg '"Health":"healthy"|\"State\":\"running\"' >/dev/null 2>&1; then
|
|
if curl -fsS "http://127.0.0.1:8848/nacos/v1/console/health/readiness" >/dev/null 2>&1; then
|
|
break
|
|
fi
|
|
fi
|
|
sleep 2
|
|
done
|
|
|
|
"$ROOT_DIR/.local-run/nacos/import-configs.sh"
|
|
|
|
echo "本地基础设施已就绪"
|