init: 导入团队知识库内容
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# ==================================== qModel 以及相关中间件 ====================================
|
||||
QMODEL_HUB=crpi-kf13onfj0v8f6jax.cn-shanghai.personal.cr.aliyuncs.com/qiantongkeji
|
||||
QMODEL_VERSION=1.0.1
|
||||
|
||||
# 数据库类型,可选值:dm8 或 mysql
|
||||
DB_TYPE=dm8
|
||||
|
||||
# 数据库
|
||||
CASE_SENSITIVE=0
|
||||
INSTANCE_NAME=QMODEL_DEV
|
||||
|
||||
# admin 密码
|
||||
SYSDBA_PWD=o5KjnPYxswsiURZHCPwd
|
||||
SYSAUDITOR_PWD=o5KjnPYxswsiURZHCPwd
|
||||
|
||||
# 表空间名称、密码
|
||||
QMODEL_USER=QMODEL_DEV
|
||||
QMODEL_PWD=s2LKr6LMQxVDTQx
|
||||
|
||||
# redis
|
||||
REDIS_PASSWORD='J98%FHF#9h@e88h9fre9'
|
||||
EXPOSE_REDIS_PORT=6379
|
||||
|
||||
# nginx
|
||||
EXPOSE_NGINX_PORT=80
|
||||
NGINX_PORT=80
|
||||
@@ -0,0 +1,26 @@
|
||||
# ==================================== qModel 以及相关中间件 ====================================
|
||||
QMODEL_HUB=crpi-kf13onfj0v8f6jax.cn-shanghai.personal.cr.aliyuncs.com/qiantongkeji
|
||||
QMODEL_VERSION=1.0.1
|
||||
|
||||
# 数据库类型,可选值:dm8 或 mysql
|
||||
DB_TYPE=dm8
|
||||
|
||||
# 数据库
|
||||
CASE_SENSITIVE=0
|
||||
INSTANCE_NAME=QMODEL
|
||||
|
||||
# admin 密码
|
||||
SYSDBA_PWD=o5KjnPYxswsiURZHCPwd
|
||||
SYSAUDITOR_PWD=o5KjnPYxswsiURZHCPwd
|
||||
|
||||
# 表空间名称、密码
|
||||
QMODEL_USER=QMODEL
|
||||
QMODEL_PWD=s2LKr6LMQxVDTQx
|
||||
|
||||
# redis
|
||||
REDIS_PASSWORD='J98%FHF#9h@e88h9fre9'
|
||||
EXPOSE_REDIS_PORT=6379
|
||||
|
||||
# nginx
|
||||
EXPOSE_NGINX_PORT=80
|
||||
NGINX_PORT=80
|
||||
@@ -0,0 +1,142 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
DM_PATH=/home/dmdba/dmdbms
|
||||
DM_DATA_DIR=/home/dmdba/data/DAMENG
|
||||
|
||||
INIT_SQL=/home/dmdba/initdata/init-qmodel.sql
|
||||
FIRST_RUN_FLAG=/var/run/qmodel_init.done
|
||||
PORT=${PORT_NUM:-5236}
|
||||
|
||||
# ---------- 检查是否已经初始化 ----------
|
||||
check_is_init() {
|
||||
if [ -d "${DM_DATA_DIR}" ]; then
|
||||
DATABASE_ALREADY_EXISTS=true
|
||||
fi
|
||||
}
|
||||
|
||||
# ---------- 初始化数据库 ----------
|
||||
db_init() {
|
||||
echo "[dm8] init db ..."
|
||||
mkdir -p "${DM_DATA_DIR}"
|
||||
chown -R dmdba "${DM_DATA_DIR}"
|
||||
cd "${DM_PATH}/bin"
|
||||
|
||||
# 初始化参数,参考你原来的需求
|
||||
INIT_ARGS="PATH=/home/dmdba/data DB_NAME=DAMENG PORT_NUM=${PORT} PAGE_SIZE=16 CHARSET=1 LENGTH_IN_CHAR=1 CASE_SENSITIVE=${CASE_SENSITIVE:-0}"
|
||||
|
||||
if [ -n "${SYSDBA_PWD}" ]; then
|
||||
INIT_ARGS="${INIT_ARGS} SYSDBA_PWD=${SYSDBA_PWD}"
|
||||
fi
|
||||
if [ -n "${SYSAUDITOR_PWD}" ]; then
|
||||
INIT_ARGS="${INIT_ARGS} SYSAUDITOR_PWD=${SYSAUDITOR_PWD}"
|
||||
fi
|
||||
|
||||
echo "[dm8] dminit ${INIT_ARGS}"
|
||||
gosu dmdba "${DM_PATH}/bin/dminit" ${INIT_ARGS}
|
||||
echo "[dm8] db init done."
|
||||
}
|
||||
|
||||
# ---------- 等待 dmserver TCP 端口可用(参考老版本逻辑) ----------
|
||||
wait_dm_ready() {
|
||||
echo "[dm8] wait dmserver tcp on 127.0.0.1:${PORT} ..."
|
||||
|
||||
i=0
|
||||
max=6000 # 最多等 6000 秒
|
||||
|
||||
while [ $i -lt $max ]; do
|
||||
# 使用 /dev/tcp 检测端口是否可连
|
||||
if (echo >"/dev/tcp/127.0.0.1/${PORT}") >/dev/null 2>&1; then
|
||||
echo "[dm8] dmserver tcp ready."
|
||||
return 0
|
||||
fi
|
||||
i=`expr $i + 1`
|
||||
sleep 1
|
||||
done
|
||||
|
||||
echo "[dm8] WARN: dmserver tcp not ready after ${max}s, continue anyway."
|
||||
return 1
|
||||
}
|
||||
|
||||
# ---------- 首次启动时导入 init-qmodel.sql ----------
|
||||
run_init_sql_once() {
|
||||
# 已经执行过了就直接跳过
|
||||
if [ -f "${FIRST_RUN_FLAG}" ]; then
|
||||
echo "[dm8] qModel init already done, skip."
|
||||
return 0
|
||||
fi
|
||||
|
||||
# 没有 SQL 文件就不导入,避免每次都尝试
|
||||
if [ ! -f "${INIT_SQL}" ]; then
|
||||
echo "[dm8] ${INIT_SQL} not found, skip qModel init."
|
||||
mkdir -p "$(dirname "${FIRST_RUN_FLAG}")"
|
||||
touch "${FIRST_RUN_FLAG}"
|
||||
return 0
|
||||
fi
|
||||
|
||||
# 必要环境变量没配也跳过
|
||||
if [ -z "${QMODEL_USER}" ] || [ -z "${QMODEL_PWD}" ] || [ -z "${SYSDBA_PWD}" ]; then
|
||||
echo "[dm8] QMODEL_USER / QMODEL_PWD / SYSDBA_PWD not set, skip qModel init."
|
||||
mkdir -p "$(dirname "${FIRST_RUN_FLAG}")"
|
||||
touch "${FIRST_RUN_FLAG}"
|
||||
return 0
|
||||
fi
|
||||
|
||||
# 仅用 TCP 端口检测等待服务就绪
|
||||
wait_dm_ready
|
||||
|
||||
echo "[dm8] start create business user and import init-qmodel.sql ..."
|
||||
|
||||
# 为了防止“用户已存在”等导致整个容器退出,这里临时关掉 set -e
|
||||
set +e
|
||||
|
||||
# 1) SYSDBA 创建业务用户并授权
|
||||
gosu dmdba "${DM_PATH}/bin/disql" "SYSDBA/${SYSDBA_PWD}@127.0.0.1:${PORT}" <<EOF
|
||||
create user "${QMODEL_USER}" identified by "${QMODEL_PWD}" hash with SHA512 salt;
|
||||
grant "PUBLIC","SOI","DBA" to "${QMODEL_USER}";
|
||||
commit;
|
||||
EOF
|
||||
|
||||
# 2) 业务用户执行初始化脚本
|
||||
gosu dmdba "${DM_PATH}/bin/disql" "${QMODEL_USER}/${QMODEL_PWD}@127.0.0.1:${PORT}" <<EOF
|
||||
set define off;
|
||||
set CHAR_CODE UTF8;
|
||||
\`${INIT_SQL}
|
||||
set define on;
|
||||
EOF
|
||||
|
||||
# 恢复 set -e
|
||||
set -e
|
||||
|
||||
mkdir -p "$(dirname "${FIRST_RUN_FLAG}")"
|
||||
touch "${FIRST_RUN_FLAG}"
|
||||
echo "[dm8] qModel init finished."
|
||||
}
|
||||
|
||||
# ---------- 主流程 ----------
|
||||
|
||||
check_is_init
|
||||
if [ -z "${DATABASE_ALREADY_EXISTS}" ]; then
|
||||
db_init
|
||||
else
|
||||
echo "[dm8] db already exists, skip dminit."
|
||||
fi
|
||||
|
||||
# 安装服务(修复你原脚本里的那一处 `DmAPService}` 的 bug)
|
||||
if [ ! -f "${DM_PATH}/bin/DmAPService" ]; then
|
||||
"${DM_PATH}/script/root/dm_service_installer.sh" -s "${DM_PATH}/bin/DmAPService"
|
||||
fi
|
||||
|
||||
if [ ! -f "${DM_PATH}/bin/DmServiceDMSERVER" ]; then
|
||||
"${DM_PATH}/script/root/dm_service_installer.sh" -t dmserver -p "DMSERVER" -dm_ini "${DM_DATA_DIR}/dm.ini"
|
||||
fi
|
||||
|
||||
# 启动服务
|
||||
gosu dmdba "${DM_PATH}/bin/DmAPService" start
|
||||
gosu dmdba "${DM_PATH}/bin/DmServiceDMSERVER" start
|
||||
|
||||
# 首次导入任务放到后台,不阻塞主进程
|
||||
run_init_sql_once &
|
||||
|
||||
# 保持容器前台进程:沿用原脚本 tail 日志
|
||||
exec gosu dmdba tail -f /home/dmdba/dmdbms/log/DmServiceDMSERVER.log
|
||||
@@ -0,0 +1,157 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
DB_PATH=${DB_PATH:-"/home/dmdba/data"}
|
||||
INSTANCE_NAME=${INSTANCE_NAME:-"DMSERVER"}
|
||||
DB_NAME=${DB_NAME:-"DAMENG"}
|
||||
DMDB_INSTALL_PATH=${DMDB_INSTALL_PATH:-"/home/dmdba/dmdb"}
|
||||
INIT_PARAMS=""
|
||||
PORT_NUM=${PORT_NUM:-"5236"}
|
||||
TIME_ZONE=${TIME_ZONE:-"+08:00"}
|
||||
BUFFER=${BUFFER:-"8000"}
|
||||
PAGE_CHECK=${PAGE_CHECK:-"3"}
|
||||
PAGE_SIZE=${PAGE_SIZE:-"8"}
|
||||
LOG_SIZE=${LOG_SIZE:-"4096"}
|
||||
EXTENT_SIZE=${EXTENT_SIZE:-"16"}
|
||||
CHARSET=${CHARSET:-"0"}
|
||||
USE_DB_NAME=${USE_DB_NAME:-"1"}
|
||||
AUTO_OVERWRITE=${AUTO_OVERWRITE:-"0"}
|
||||
BLANK_PAD_MODE=${BLANK_PAD_MODE:-"0"}
|
||||
DPC_MODE=${DPC_MODE:-"0"}
|
||||
CASE_SENSITIVE=${CASE_SENSITIVE:-"y"}
|
||||
|
||||
OTHER_PARAMS=${OTHER_PARAMS:-""}
|
||||
|
||||
SYSDBA_PWD=${SYSDBA_PWD:-""}
|
||||
SYSAUDITOR_PWD=${SYSAUDITOR_PWD:-""}
|
||||
|
||||
# ===== 新增:一次性执行标记 & 日志路径 =====
|
||||
FIRST_RUN_FLAG="/var/run/dm8_first_run.done" # 首次执行标记
|
||||
INIT_LOG="/init.log" # 初始化日志文件
|
||||
|
||||
function init_db() {
|
||||
if [ -z "$SYSDBA_PWD" ]; then
|
||||
echo "SYSDBA_PWD is empty, please set it in environment variables"
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$SYSAUDITOR_PWD" ]; then
|
||||
echo "SYSAUDITOR_PWD is empty, please set it in environment variables"
|
||||
exit 1
|
||||
fi
|
||||
# 判断DB_PATH文件夹内是否存在文件
|
||||
if [ -d "$DB_PATH" ]; then
|
||||
if [ "$(ls -A $DB_PATH)" ]; then
|
||||
echo "DB_PATH is not empty, please check it"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "DB_PATH is not exist, create it"
|
||||
mkdir -p $DB_PATH
|
||||
chown -R dmdba $DB_PATH
|
||||
fi
|
||||
INIT_PARAMS="$INIT_PARAMS PATH=$DB_PATH SYSDBA_PWD=$SYSDBA_PWD SYSAUDITOR_PWD=$SYSAUDITOR_PWD INSTANCE_NAME=$INSTANCE_NAME"
|
||||
INIT_PARAMS="$INIT_PARAMS PORT_NUM=$PORT_NUM DB_NAME=$DB_NAME TIME_ZONE=$TIME_ZONE BUFFER=$BUFFER PAGE_CHECK=$PAGE_CHECK PAGE_SIZE=$PAGE_SIZE"
|
||||
INIT_PARAMS="$INIT_PARAMS LOG_SIZE=$LOG_SIZE EXTENT_SIZE=$EXTENT_SIZE CHARSET=$CHARSET USE_DB_NAME=$USE_DB_NAME"
|
||||
INIT_PARAMS="$INIT_PARAMS AUTO_OVERWRITE=$AUTO_OVERWRITE BLANK_PAD_MODE=$BLANK_PAD_MODE DPC_MODE=$DPC_MODE CASE_SENSITIVE=$CASE_SENSITIVE"
|
||||
INIT_PARAMS="$INIT_PARAMS $OTHER_PARAMS"
|
||||
echo "Initializing database..."
|
||||
echo "Initializing database with parameters:"
|
||||
echo $INIT_PARAMS
|
||||
sudo -u dmdba /home/dmdba/dmdb/bin/dminit $INIT_PARAMS
|
||||
echo "Database initialized"
|
||||
}
|
||||
function start_dmap() {
|
||||
echo "Starting DmAPService..."
|
||||
sudo -u dmdba /home/dmdba/dmdb/bin/dmap dmap_ini=/home/dmdba/dmdb/bin/dmap.ini &
|
||||
echo "DmAPService started"
|
||||
}
|
||||
|
||||
# 创建一个函数,用来修改文件的权限
|
||||
function modify_db_permissions() {
|
||||
echo "Modifying $DB_PATH permissions..."
|
||||
chown -R dmdba $DB_PATH
|
||||
echo "$DB_PATH permissions modified"
|
||||
}
|
||||
|
||||
function check_initialized() {
|
||||
# 判断 $DB_PATH/$DB_NAME/dm.ini 是否存在
|
||||
if [ -f "$DB_PATH/$DB_NAME/dm.ini" ]; then
|
||||
echo "Database already initialized"
|
||||
modify_db_permissions
|
||||
else
|
||||
echo "Database not initialized"
|
||||
init_db
|
||||
fi
|
||||
}
|
||||
|
||||
# ===== 新增:等待 TCP 就绪的小函数 =====
|
||||
wait_tcp_ready() {
|
||||
local waited=0
|
||||
local timeout=600
|
||||
echo "Waiting for dmserver TCP on 127.0.0.1:${PORT_NUM} ..."
|
||||
# /dev/tcp 存在即可用;若镜像不支持,可改用 nc -z
|
||||
while ! (echo >"/dev/tcp/127.0.0.1/${PORT_NUM}") >/dev/null 2>&1; do
|
||||
sleep 2
|
||||
waited=$((waited+2))
|
||||
if [ $waited -ge $timeout ]; then
|
||||
echo "ERROR: TCP 127.0.0.1:${PORT_NUM} not ready in ${timeout}s"
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
echo "TCP ready."
|
||||
return 0
|
||||
}
|
||||
|
||||
# ===== 新增:首次执行的后台任务(按你的两段 disql 顺序)=====
|
||||
post_boot_first_run() {
|
||||
# 已执行过则直接退出
|
||||
if [ -f "$FIRST_RUN_FLAG" ]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
# 等 TCP 就绪(服务启动完成)
|
||||
if ! wait_tcp_ready; then
|
||||
echo "WARN: dmserver TCP not ready; skip first-run init."
|
||||
return 0
|
||||
fi
|
||||
|
||||
# 准备日志
|
||||
if [ ! -f "$INIT_LOG" ]; then
|
||||
echo "init database at $(date +'%Y-%m-%d %H:%M:%S')" > "$INIT_LOG"
|
||||
fi
|
||||
|
||||
echo "Creating business user & grant ..." | tee -a "$INIT_LOG"
|
||||
# 第一步:SYSDBA 执行建用户与授权
|
||||
/home/dmdba/dmdb/bin/disql SYSDBA/${SYSDBA_PWD}@localhost:${PORT_NUM} <<EOF >> "$INIT_LOG" 2>&1
|
||||
create user "${QMODEL_USER}" identified by "${QMODEL_PWD}" hash with SHA512 salt;
|
||||
grant "PUBLIC","SOI","DBA" to "${QMODEL_USER}";
|
||||
COMMIT;
|
||||
EOF
|
||||
|
||||
echo "Importing initial data ..." | tee -a "$INIT_LOG"
|
||||
# 第二步:业务用户导入数据(确保 /home/dmdba/initdata/init-qmodel.sql 可读)
|
||||
/home/dmdba/dmdb/bin/disql ${QMODEL_USER}/${QMODEL_PWD}@localhost:${PORT_NUM} <<EOF >> "$INIT_LOG" 2>&1
|
||||
set define off;
|
||||
set CHAR_CODE UTF8;
|
||||
\`/home/dmdba/initdata/init-qmodel.sql
|
||||
set define on;
|
||||
EOF
|
||||
|
||||
# 落标记:仅首次执行
|
||||
touch "$FIRST_RUN_FLAG"
|
||||
echo "First-run initialization finished." | tee -a "$INIT_LOG"
|
||||
}
|
||||
|
||||
cd $DMDB_INSTALL_PATH/bin
|
||||
# 检查DB是否初始化,如果没有初始化则执行初始化
|
||||
check_initialized
|
||||
|
||||
# 启动 DmAPServer
|
||||
start_dmap
|
||||
|
||||
# ===== 新增:后台启动首次执行任务(不阻塞主进程)=====
|
||||
post_boot_first_run &
|
||||
|
||||
# 启动数据库实例(前台)
|
||||
echo "Starting DmServer..."
|
||||
exec sudo -u dmdba /home/dmdba/dmdb/bin/dmserver path=$DB_PATH/$DB_NAME/dm.ini
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,22 @@
|
||||
[mysqld]
|
||||
pid-file = /var/run/mysqld/mysqld.pid
|
||||
socket = /var/run/mysqld/mysqld.sock
|
||||
datadir = /var/lib/mysql
|
||||
#log-error = /var/log/mysql/error.log
|
||||
#bind-address = 127.0.0.1
|
||||
symbolic-links=0
|
||||
|
||||
character_set_server=utf8mb4
|
||||
character_set_filesystem=utf8mb4
|
||||
collation-server=utf8mb4_general_ci
|
||||
init-connect='SET NAMES utf8mb4'
|
||||
init_connect='SET collation_connection = utf8mb4_general_ci'
|
||||
skip-character-set-client-handshake
|
||||
lower_case_table_names=1
|
||||
|
||||
# 最大连接数
|
||||
max_connections=500000
|
||||
# 连接超时时间
|
||||
connect_timeout=30
|
||||
# 最大包大小 (16MB)
|
||||
max_allowed_packet=16777216
|
||||
@@ -0,0 +1,67 @@
|
||||
version: "1.0.1"
|
||||
|
||||
services:
|
||||
redis:
|
||||
privileged: true
|
||||
image: redis:6-alpine
|
||||
profiles: ["all","local"]
|
||||
env_file: .env
|
||||
restart: always
|
||||
environment:
|
||||
REDISCLI_AUTH: ${REDIS_PASSWORD:-J98%FHF#9h@e88h9fre9}
|
||||
# volumes:
|
||||
# # Mount the redis data directory to the container.
|
||||
# - ./redis/data:/data
|
||||
# Set the redis password when startup redis server.
|
||||
command: redis-server --requirepass ${REDIS_PASSWORD:-J98%FHF#9h@e88h9fre9}
|
||||
ports:
|
||||
- "${EXPOSE_REDIS_PORT:-6379}:6379"
|
||||
healthcheck:
|
||||
test: [ 'CMD', 'redis-cli', 'ping' ]
|
||||
networks:
|
||||
- qmodel_net
|
||||
|
||||
nginx:
|
||||
privileged: true
|
||||
image: nginx:1.24.0
|
||||
restart: always
|
||||
profiles: [ "all" ]
|
||||
env_file: .env
|
||||
ports:
|
||||
- '${EXPOSE_NGINX_PORT:-80}:${NGINX_PORT:-80}'
|
||||
networks:
|
||||
- qmodel_net
|
||||
volumes:
|
||||
- ./nginx/dist:/usr/share/nginx
|
||||
- ./nginx/logs:/var/log/nginx
|
||||
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||
- ./nginx/sites/:/etc/nginx/http_vhost/:ro
|
||||
|
||||
dm8:
|
||||
image: ${QMODEL_HUB}/dm8:mixed
|
||||
profiles: [ "all", "schema","local" ,"qmodel-db"]
|
||||
env_file: .env
|
||||
privileged: true
|
||||
hostname: dm8
|
||||
restart: always
|
||||
ports:
|
||||
- "35236:5236"
|
||||
volumes:
|
||||
- ./database/dm8/init-qmodel.sql:/home/dmdba/initdata/init-qmodel.sql
|
||||
- ./database/dm8/entrypoint.sh:/entrypoint.sh
|
||||
- ./database/dm8/entrypoint-arm64.sh:/usr/local/bin/docker-entrypoint.sh
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
- CASE_SENSITIVE=${CASE_SENSITIVE}
|
||||
- SYSDBA_PWD=${SYSDBA_PWD}
|
||||
- SYSAUDITOR_PWD=${SYSAUDITOR_PWD}
|
||||
- QMODEL_USER=${QMODEL_USER}
|
||||
- QMODEL_PWD=${QMODEL_PWD}
|
||||
healthcheck:
|
||||
test: [ "CMD-SHELL", "echo > /dev/tcp/127.0.0.1/5236" ]
|
||||
interval: 20s # 每 20 秒检测一次
|
||||
timeout: 5s # 超过 5 秒算失败
|
||||
retries: 10 # 连续 10 次失败算 unhealthy
|
||||
start_period: 1200s # 容忍 20 分钟内失败
|
||||
networks:
|
||||
- qmodel_net
|
||||
@@ -0,0 +1,28 @@
|
||||
version: "1.0.1"
|
||||
|
||||
services:
|
||||
# qmodel 后端服务
|
||||
qmodel-api:
|
||||
privileged: true
|
||||
image: ${QMODEL_HUB}/qmodel-server-ce:${QMODEL_VERSION}
|
||||
restart: always
|
||||
profiles: [ "all" ]
|
||||
env_file: .env
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
ports:
|
||||
- "18888:8080"
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- ./qmodel-server/logs:/usr/app/jar/logs
|
||||
- ./qmodel-server/upload:/usr/app/jar/upload
|
||||
- ./qmodel-server/application-prod.yml:/usr/app/jar/application-prod.yml
|
||||
depends_on:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
dm8:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- qmodel_net
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
@@ -0,0 +1,12 @@
|
||||
include:
|
||||
- path: ./docker-compose-base.yml
|
||||
- path: ./docker-compose-qmodel.yml
|
||||
|
||||
version: "1.0.1"
|
||||
|
||||
networks:
|
||||
qmodel_net:
|
||||
driver: bridge
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 172.52.0.0/16
|
||||
@@ -0,0 +1,42 @@
|
||||
user root;
|
||||
worker_processes 8;
|
||||
error_log /var/log/nginx/error.log warn;
|
||||
pid /var/run/nginx.pid;
|
||||
|
||||
events {
|
||||
worker_connections 3000;
|
||||
}
|
||||
|
||||
http {
|
||||
include /etc/nginx/mime.types;
|
||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||
'$status $body_bytes_sent "$http_referer" '
|
||||
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||
access_log /var/log/nginx/access.log main;
|
||||
server_tokens off;
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
keepalive_timeout 300;
|
||||
keepalive_requests 1000;
|
||||
|
||||
client_header_timeout 60;
|
||||
client_body_timeout 60;
|
||||
|
||||
proxy_buffering on;
|
||||
proxy_buffer_size 4k;
|
||||
proxy_buffers 8 16k;
|
||||
proxy_busy_buffers_size 32k;
|
||||
proxy_max_temp_file_size 0;
|
||||
|
||||
gzip on;
|
||||
gzip_min_length 1k;
|
||||
gzip_buffers 4 16k;
|
||||
gzip_comp_level 1;
|
||||
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
|
||||
gzip_vary off;
|
||||
gzip_disable "MSIE [1-6]\.";
|
||||
|
||||
include http_vhost/*.conf;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
server {
|
||||
listen 80;
|
||||
server_name localhost;
|
||||
|
||||
client_max_body_size 500M;
|
||||
add_header Strict-Transport-Security "max-age=31536000";
|
||||
proxy_connect_timeout 600s;
|
||||
proxy_send_timeout 600s;
|
||||
proxy_read_timeout 600s;
|
||||
keepalive_timeout 600s;
|
||||
send_timeout 60s;
|
||||
|
||||
location / {
|
||||
proxy_read_timeout 600;
|
||||
charset utf-8;
|
||||
root /usr/share/nginx;
|
||||
try_files $uri $uri/ /index.html;
|
||||
index index.html index.htm;
|
||||
}
|
||||
|
||||
location /prod-api {
|
||||
add_header 'Access-Control-Allow-Methods' 'GET, POST,PUT,DELETE, OPTIONS';
|
||||
proxy_read_timeout 6000;
|
||||
rewrite ^/prod-api/(.*)$ /$1 break;
|
||||
proxy_set_header X-Real-Ip $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_pass http://qmodel-api:8080;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
# 用户配置
|
||||
user:
|
||||
password:
|
||||
# 密码最大错误次数
|
||||
maxRetryCount: 5
|
||||
# 密码锁定时间(默认10分钟)
|
||||
lockTime: 10
|
||||
#万能密码 配置为空则不生效
|
||||
universalPassword: qModel23@qtt0317.
|
||||
|
||||
# 主数据源选择
|
||||
datasource:
|
||||
type: dm8
|
||||
|
||||
# Spring配置
|
||||
spring:
|
||||
# redis 配置
|
||||
redis:
|
||||
# 地址
|
||||
host: redis
|
||||
# 端口,默认为6379
|
||||
port: 6379
|
||||
# 数据库索引
|
||||
database: 0
|
||||
# 密码
|
||||
password: J98%FHF#9h@e88h9fre9
|
||||
# 连接超时时间
|
||||
timeout: 10s
|
||||
lettuce:
|
||||
pool:
|
||||
# 连接池中的最小空闲连接
|
||||
min-idle: 0
|
||||
# 连接池中的最大空闲连接
|
||||
max-idle: 8
|
||||
# 连接池的最大数据库连接数
|
||||
max-active: 8
|
||||
# #连接池最大阻塞等待时间(使用负值表示没有限制)
|
||||
max-wait: -1ms
|
||||
datasource:
|
||||
druid:
|
||||
stat-view-servlet:
|
||||
# 是否启用Druid的监控统计功能
|
||||
enabled: false
|
||||
# 访问Druid监控页面的用户名
|
||||
loginUsername: qModel
|
||||
# 访问Druid监控页面的密码
|
||||
loginPassword: 123456
|
||||
dynamic:
|
||||
druid:
|
||||
# 连接池初始化时创建的连接数量
|
||||
initial-size: 5
|
||||
# 连接池中最小空闲连接数
|
||||
min-idle: 5
|
||||
# 连接池中最大活动连接数
|
||||
maxActive: 20
|
||||
# 连接池等待连接的最长时间(毫秒)
|
||||
maxWait: 60000
|
||||
# 数据库连接超时时间(毫秒)
|
||||
connectTimeout: 30000
|
||||
# Socket超时时间(毫秒)
|
||||
socketTimeout: 60000
|
||||
# 空闲连接的检测周期(毫秒)
|
||||
timeBetweenEvictionRunsMillis: 60000
|
||||
# 最小空闲连接的存活时间(毫秒)
|
||||
minEvictableIdleTimeMillis: 300000
|
||||
# 用于检测连接是否有效的SQL语句
|
||||
validationQuery: SELECT 1 FROM DUAL
|
||||
# 是否在空闲时检测连接的有效性
|
||||
testWhileIdle: true
|
||||
# 借用连接时是否测试连接的有效性
|
||||
testOnBorrow: false
|
||||
# 归还连接时是否测试连接的有效性
|
||||
testOnReturn: false
|
||||
# 是否打开连接池的PreparedStatement缓存
|
||||
poolPreparedStatements: true
|
||||
# 每个连接池的PreparedStatement缓存上限
|
||||
maxPoolPreparedStatementPerConnectionSize: 20
|
||||
# 配置Druid的过滤器
|
||||
filters: stat,slf4j
|
||||
# Druid连接属性配置
|
||||
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
|
||||
datasource:
|
||||
# 主库数据源配置
|
||||
master:
|
||||
# 动态加载的配置属性
|
||||
driver-class-name: ${${datasource.type}.driver-class-name}
|
||||
url: ${${datasource.type}.url}
|
||||
username: ${${datasource.type}.username}
|
||||
password: ${${datasource.type}.password}
|
||||
|
||||
# 达梦配置文件
|
||||
dm8:
|
||||
# JDBC驱动类名
|
||||
driver-class-name: dm.jdbc.driver.DmDriver
|
||||
# 主库JDBC连接URL
|
||||
url: jdbc:dm://dm8:5236/QMODEL_DEV?STU&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&schema=QMODEL_DEV&serverTimezone=Asia/Shanghai
|
||||
# 主库用户名
|
||||
username: QMODEL_DEV
|
||||
# 主库密码
|
||||
password: s2LKr6LMQxVDTQx
|
||||
|
||||
## 工作流模块的访问地址
|
||||
flow:
|
||||
enable: false
|
||||
url: http://127.0.0.1:26859/
|
||||
|
||||
|
||||
#模型
|
||||
modelUrl: "http://192.168.200.206:8000"
|
||||
modelUrl2: "http://192.168.200.182:8821"
|
||||
|
||||
model:
|
||||
hydrodynamicModel: D:\model\chengxuhuizong11.5
|
||||
newHydrodynamicModel: C:\Users\yuexin\Downloads\1.31exe\1.31exe
|
||||
filePath: D:\nami\data\model
|
||||
location: D:\nami\data\modelFile\
|
||||
accessUrl: D:/nami/data/modelFile
|
||||
Reference in New Issue
Block a user