init: IotLCM 开源版部署仓
内容: - docker-compose.yml:14 个基础/业务服务 + 3 个可选 profile(with-mock 挡板、with-bot、with-nginx) - .env.example:集中管理镜像仓库、口令、端口;必填项缺失时 compose 直接报错退出 - config.example/:10 份配置模板,全部为占位值与注释说明 - schema/:12 个初始化脚本,按文件名顺序由 MySQL initdb 自动执行 脱敏处理: - 生产/内网 IP、镜像仓库地址、公司名、真实域名全部清除 - 演示账号保留 18 个(出库与划拨依赖账号与部门树的关联), 昵称/邮箱/手机号/登录IP/头像改为占位或编造值 - 数据库账号与 admin 口令改为初始化时按 .env 注入计算 - 通道模板与 Mock 通道的上游密钥置空 - Mock 通道地址指向 compose 内 onelink-mock 服务 部署时用 --profile with-mock 启动运营商接口挡板,即可在无真实运营商环境时跑通全链路。
This commit is contained in:
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
# ============================================================
|
||||
# 业务数据库账号与附加库
|
||||
# 由 MySQL 容器 docker-entrypoint-initdb.d 在首次启动时执行。
|
||||
#
|
||||
# 为什么用 .sh 而不是 .sql:
|
||||
# MySQL 官方镜像的 initdb 脚本无法在 SQL 里读环境变量,
|
||||
# 而账号口令必须从 .env 注入,不能写死在仓库里。
|
||||
# ============================================================
|
||||
set -euo pipefail
|
||||
|
||||
if [ -z "${MYSQL_APP_PASSWORD:-}" ]; then
|
||||
echo "[initdb] 错误:未设置 MYSQL_APP_PASSWORD" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mysql --protocol=socket -uroot -p"${MYSQL_ROOT_PASSWORD}" <<SQL
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
-- 应用账号(对应各 config 文件里的数据库用户名 u_iotlcm)
|
||||
CREATE USER IF NOT EXISTS 'u_iotlcm'@'%'
|
||||
IDENTIFIED WITH mysql_native_password BY '${MYSQL_APP_PASSWORD}';
|
||||
GRANT ALL PRIVILEGES ON \`db_iotlcm\`.* TO 'u_iotlcm'@'%';
|
||||
|
||||
-- legacyCard 附加库(可选,不需要时删掉这三行)
|
||||
CREATE DATABASE IF NOT EXISTS \`iotdb\`
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
|
||||
GRANT ALL PRIVILEGES ON \`iotdb\`.* TO 'u_iotlcm'@'%';
|
||||
|
||||
FLUSH PRIVILEGES;
|
||||
SQL
|
||||
|
||||
echo "[initdb] 应用账号 u_iotlcm 已创建"
|
||||
Reference in New Issue
Block a user