This commit is contained in:
parent
6875c9d75b
commit
69cd9dcdff
|
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/bash
|
||||||
|
source ../environment.sh
|
||||||
|
|
||||||
|
# 检查必要的环境变量
|
||||||
|
if [ -z "$NETWORK" ] || [ -z "$KAFKA_UI_PORT" ] || [ -z "$KAFKA_UI_NAME" ] || [ -z "$KAFKA_UI_IMAGE" ] || [ -z "$KAFKA_UI_MEMORY" ]; then
|
||||||
|
echo "Error: Required environment variables are not set"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 停止并删除已存在的容器
|
||||||
|
docker stop ${KAFKA_UI_NAME} 2>/dev/null
|
||||||
|
docker rm ${KAFKA_UI_NAME} 2>/dev/null
|
||||||
|
|
||||||
|
# 启动 Kafka UI
|
||||||
|
docker run -d \
|
||||||
|
--name ${KAFKA_UI_NAME} \
|
||||||
|
--network ${NETWORK} \
|
||||||
|
-p ${KAFKA_UI_PORT}:8080 \
|
||||||
|
-e KAFKA_CLUSTERS_0_NAME=local \
|
||||||
|
-e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=${KAFKA_NAME}:${KAFKA_PORT} \
|
||||||
|
-e JAVA_TOOL_OPTIONS="-Xmx${KAFKA_UI_MEMORY}" \
|
||||||
|
${KAFKA_UI_IMAGE}
|
||||||
|
|
||||||
|
echo "Kafka UI started at http://localhost:${KAFKA_UI_PORT}"
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen 443 ssl;
|
||||||
|
listen 3443 ssl;
|
||||||
|
server_name ${OIDC_ADMIN_DOMAIN_FULL};
|
||||||
|
|
||||||
|
# 开启gzip功能
|
||||||
|
gzip on;
|
||||||
|
gzip_min_length 10k;
|
||||||
|
gzip_comp_level 9;
|
||||||
|
gzip_types text/plain text/css application/javascript application/x-javascript text/javascript application/xml;
|
||||||
|
gzip_vary on;
|
||||||
|
gzip_disable "MSIE [1-6]\.";
|
||||||
|
|
||||||
|
location /{
|
||||||
|
try_files $uri $uri/ @router;
|
||||||
|
index index.html;
|
||||||
|
}
|
||||||
|
|
||||||
|
location @router{
|
||||||
|
rewrite ^.*$ /index.html last;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /oidc {
|
||||||
|
proxy_pass http://gatewayService;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
source ../environment.sh
|
||||||
|
|
||||||
|
|
||||||
|
if docker ps -a | grep -q ${DSP_API_NAME}; then
|
||||||
|
echo "停止并删除已存在的 DSP_API_NAME 容器..."
|
||||||
|
docker stop ${DSP_API_NAME} >/dev/null 2>&1
|
||||||
|
docker rm ${DSP_API_NAME} >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
docker run --pull always -d \
|
||||||
|
--name ${DSP_API_NAME} \
|
||||||
|
--network ${NETWORK} \
|
||||||
|
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
|
||||||
|
--env SPRING_CLOUD_CONSUL_PORT=8500 \
|
||||||
|
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${DSP_API_NAME} \
|
||||||
|
--env XXL_JOB_ADMIN_ADDRESSES=http://${XXLJOB_NAME}:8080/xxl-job-admin \
|
||||||
|
--env XXL_ENABLE=false \
|
||||||
|
--env SPRING_REDIS_HOST=${REDIS_NAME} \
|
||||||
|
--env SPRING_REDIS_PORT=6379 \
|
||||||
|
--env SPRING_DATASOURCE_DRUID_URL="jdbc:mysql://${MYSQL_NAME}:3306/tuoheng_dsp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=true&tinyInt1isBit=false" \
|
||||||
|
--env SPRING_DATASOURCE_DRUID_USERNAME=root \
|
||||||
|
--env SPRING_DATASOURCE_DRUID_PASSWORD=${MYSQL_ROOT_PASSWORD} \
|
||||||
|
--env SPRING_MQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env SPRING_MQTT_URL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env SPRING_MQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env SPRING_NEWMQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env SPRING_NEWMQTT_URL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env SPRING_NEWMQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env VIDEOSERVER_REQUESTURL=http://${STREAM_NAME}:8080 \
|
||||||
|
--env VIDEOSERVER_VIDEOPLAYURL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/recording/ \
|
||||||
|
--env SPRING_KAFKA_BOOTSTRAP_SERVERS=${KAFKA_NAME}:9092 \
|
||||||
|
--env MINIO_OSS_ENDPOINT=http://${MINIO_NAME}:9000 \
|
||||||
|
--env MINIO_OSS_OUTENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
|
||||||
|
--env MINIO_DAJIOSS_ENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
|
||||||
|
--env MINIO_OSS_ACCESSKEYID=${MINIO_ACCESS_KEY} \
|
||||||
|
--env MINIO_OSS_ACCESSKEYSECRET=${MINIO_SECRET_KEY} \
|
||||||
|
--env TUOHENG_PUSH_URL=rtmp://${SRS_DOMAIN}:${SRS_RTMP_PORT}/live/ \
|
||||||
|
--env TUOHENG_PULL_URL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/live/ \
|
||||||
|
--env TZ=Asia/Shanghai \
|
||||||
|
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
|
||||||
|
--memory ${DSP_API_MEMORY} \
|
||||||
|
--restart unless-stopped \
|
||||||
|
${DSP_API_IMAGE}
|
||||||
|
|
@ -0,0 +1,181 @@
|
||||||
|
server:
|
||||||
|
port: 7011
|
||||||
|
main:
|
||||||
|
allow-bean-definition-overriding: true
|
||||||
|
web-application-typpse: reactive
|
||||||
|
|
||||||
|
management:
|
||||||
|
endpoints:
|
||||||
|
web:
|
||||||
|
exposure:
|
||||||
|
include: prometheus,health
|
||||||
|
metrics:
|
||||||
|
tags:
|
||||||
|
application: tuoheng-gateway
|
||||||
|
|
||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: tuoheng-gateway
|
||||||
|
security:
|
||||||
|
oauth2:
|
||||||
|
resource-server:
|
||||||
|
jwt:
|
||||||
|
issuer-uri: https://${OIDC_DOMAIN_FULL}
|
||||||
|
cloud:
|
||||||
|
consul:
|
||||||
|
host: ${CONSUL_NAME} # consul 所在服务地址
|
||||||
|
port: 8500 # consul 服务端口
|
||||||
|
discovery:
|
||||||
|
enabled: true #默认true。Consul Discovery Client是否注册到注册中心。和register同时设置成false,就不需要起consul服务。
|
||||||
|
register: true #是否将服务注册到Consul集群中心.。这个参数和上面的enabled参数同时设置成false,应用才不会注册注册中心,才可以不起consul服务!
|
||||||
|
deregister: true #默认true,服务停止时注销服务,即从服务列表中删除。设置成false的话,???
|
||||||
|
## consul ip地址
|
||||||
|
hostname: ${CONSUL_NAME}
|
||||||
|
# 注册到consul的服务名称
|
||||||
|
service-name: ${spring.application.name} # 服务提供者名称,注册在consul上面的名字,在consul的调用中,是通过此名字调用的。默认服务名,不要改
|
||||||
|
instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${server.port} #实例ID
|
||||||
|
heartbeat:
|
||||||
|
enabled: true
|
||||||
|
prefer-ip-address: true #表示注册时使用IP而不是hostname
|
||||||
|
health-check-path: /actuator/health #健康检查
|
||||||
|
health-check-interval: 10s #配置 Consul 健康检查频率,也就是心跳频率。
|
||||||
|
health-check-timeout: 10s #健康检查超时
|
||||||
|
gateway:
|
||||||
|
httpclient:
|
||||||
|
websocket:
|
||||||
|
max-frame-payload-length: 10485760 # 单次通信提交最大数据库设置成10MB
|
||||||
|
discovery:
|
||||||
|
locator:
|
||||||
|
lowerCaseServiceId: true
|
||||||
|
enabled: true
|
||||||
|
# 跨域设置
|
||||||
|
globalcors:
|
||||||
|
add-to-simple-url-handler-mapping: true
|
||||||
|
cors-configurations:
|
||||||
|
'[/**]':
|
||||||
|
allowedOrigins:
|
||||||
|
- "http://localhost:8001"
|
||||||
|
allowedMethods:
|
||||||
|
- "GET"
|
||||||
|
- "POST"
|
||||||
|
- "DELETE"
|
||||||
|
- "PUT"
|
||||||
|
- "OPTIONS"
|
||||||
|
allowedHeaders: "*"
|
||||||
|
allowCredentials: true
|
||||||
|
maxAge: 360000
|
||||||
|
routes:
|
||||||
|
# 机场平台 platform服务
|
||||||
|
- id: tuoheng-airport-admin
|
||||||
|
uri: http://${AIRPORT_NAME}:9060
|
||||||
|
predicates:
|
||||||
|
- Path=/airport/admin/**
|
||||||
|
filters:
|
||||||
|
- StripPrefix=2
|
||||||
|
metadata:
|
||||||
|
response-timeout: 20000
|
||||||
|
connect-timeout: 30000
|
||||||
|
# 机场平台 platform服务 webSocket
|
||||||
|
- id: tuoheng-airport-admin
|
||||||
|
uri: ws://${AIRPORT_NAME}:9060
|
||||||
|
predicates:
|
||||||
|
- Path=/airport/socket/**
|
||||||
|
filters:
|
||||||
|
- StripPrefix=2
|
||||||
|
# 后台管理
|
||||||
|
- id: tuoheng-dsp-admin
|
||||||
|
uri: http://dsp-admin:9014
|
||||||
|
predicates:
|
||||||
|
- Path=/api/admin/**
|
||||||
|
filters:
|
||||||
|
- StripPrefix=2
|
||||||
|
# 网站服务
|
||||||
|
- id: tuoheng-dsp-portal
|
||||||
|
uri: http://dsp-portal:9017
|
||||||
|
predicates:
|
||||||
|
- Path=/api/portal/**
|
||||||
|
filters:
|
||||||
|
- StripPrefix=2
|
||||||
|
# DSP小程序服务
|
||||||
|
- id: tuoheng-dsp-miniprogram
|
||||||
|
uri: http://dsp-mini:9016
|
||||||
|
predicates:
|
||||||
|
- Path=/api/miniprogram/**
|
||||||
|
filters:
|
||||||
|
- StripPrefix=2
|
||||||
|
# DSP api服务
|
||||||
|
- id: tuoheng-dsp-api
|
||||||
|
uri: http://${DSP_API_NAME}:9015
|
||||||
|
predicates:
|
||||||
|
- Path=/api/web/**
|
||||||
|
filters:
|
||||||
|
- StripPrefix=2
|
||||||
|
# DSP 巡检云
|
||||||
|
- id: tuoheng-dsp-inspection
|
||||||
|
uri: http://dsp-inspection:9018
|
||||||
|
predicates:
|
||||||
|
- Path=/api/inspection/**
|
||||||
|
filters:
|
||||||
|
- StripPrefix=2
|
||||||
|
# hhz admin服务
|
||||||
|
- id: tuoheng-hhz-admin
|
||||||
|
uri: http://${HHZ_ADMIN_NAME}:9055
|
||||||
|
predicates:
|
||||||
|
- Path=/hhz/admin/**
|
||||||
|
filters:
|
||||||
|
- StripPrefix=2
|
||||||
|
# hhz 小程序服务
|
||||||
|
- id: tuoheng-hhz-api
|
||||||
|
uri: http://${HHZ_API_NAME}:9056
|
||||||
|
predicates:
|
||||||
|
- Path=/hhz/api/**
|
||||||
|
filters:
|
||||||
|
- StripPrefix=2
|
||||||
|
# business admin服务
|
||||||
|
- id: tuoheng-business-admin
|
||||||
|
uri: http://${BUSINESS_NAME}:9260
|
||||||
|
predicates:
|
||||||
|
- Path=/business/admin/**
|
||||||
|
filters:
|
||||||
|
- StripPrefix=2
|
||||||
|
# business 小程序服务
|
||||||
|
# Redis数据源
|
||||||
|
redis:
|
||||||
|
# 缓存库默认索引0
|
||||||
|
database: 0
|
||||||
|
# Redis服务器地址
|
||||||
|
host: ${REDIS_NAME}
|
||||||
|
# Redis服务器连接端口
|
||||||
|
port: 6379
|
||||||
|
# Redis服务器连接密码(默认为空)
|
||||||
|
password:
|
||||||
|
# 连接超时时间(毫秒)
|
||||||
|
timeout: 6000
|
||||||
|
# 默认的数据过期时间,主要用于shiro权限管理
|
||||||
|
expire: 2592000
|
||||||
|
jedis:
|
||||||
|
pool:
|
||||||
|
max-active: 1000 # 连接池最大连接数(使用负值表示没有限制)
|
||||||
|
max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
|
||||||
|
max-idle: 10 # 连接池中的最大空闲连接
|
||||||
|
min-idle: 1 # 连接池中的最小空闲连接
|
||||||
|
#security放行白名单配置
|
||||||
|
security:
|
||||||
|
ignore:
|
||||||
|
permitUrls: /api/system/demo/msg
|
||||||
|
oauthUrls: /api/system/demo/hello,/api/portal/serviceInst/*/getServiceInstParam/*,/api/portal/serviceInst/*/getServiceInstCaseUrl/*,/api/portal/serviceInst/*/*/application,/api/portal/serviceInst/*/*/questionList,/api/miniprogram/serviceInst/*/getServiceInstParam/*,/api/miniprogram/serviceInst/*/getServiceInstCaseUrl/*,/api/miniprogram/serviceInst/*/*/application,/api/miniprogram/serviceInst/*/*/questionList
|
||||||
|
|
||||||
|
# 获取 apiUrl 可访问的 roleIdList
|
||||||
|
tuoheng:
|
||||||
|
hhz-admin-perUrl: http://${HHZ_ADMIN_NAME}:9055/permission/getRoleIdList
|
||||||
|
airport-admin-perUrl: http://${AIRPORT_NAME}:9060/permission/getRoleIdList
|
||||||
|
freeway-admin-perUrl: http://freeway-admin:9117/permission/getRoleIdList
|
||||||
|
waterway-admin-perUrl: https://waterway.t-aaron.com/permission/getRoleIdList
|
||||||
|
airmonitor-admin-perUrl: http://airmonitor-admin:9130/permission/getRoleIdList
|
||||||
|
weptsp-admin-perUrl: http://weptsp-admin:9140/permission/getRoleIdList
|
||||||
|
telecomumale-admin-perUrl: http://telecomumale-admin:9150/permission/getRoleIdList
|
||||||
|
alert-admin-perUrl: https://alert.t-aaron.com/permission/getRoleIdList
|
||||||
|
spacetime-admin-perUrl: https://spacetime.t-aaron.com/permission/getRoleIdList
|
||||||
|
digitaltwin-admin-perUrl: https://digitaltwin.t-aaron.com/permission/getRoleIdList
|
||||||
|
dmp-admin-perUrl: https://dmp.t-aaron.com/permission/getRoleIdList
|
||||||
|
lacs-admin-perUrl: https://lacs.t-aaron.com/permission/getRoleIdList
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 确保在脚本所在目录执行
|
||||||
|
cd "$(dirname "$0")"
|
||||||
|
SCRIPT_DIR="$(pwd)"
|
||||||
|
echo "当前工作目录: $SCRIPT_DIR"
|
||||||
|
|
||||||
|
# 获取项目根目录
|
||||||
|
ROOT_DIR="$(cd ../.. && pwd)"
|
||||||
|
echo "项目根目录: $ROOT_DIR"
|
||||||
|
|
||||||
|
# 加载环境变量
|
||||||
|
source "$ROOT_DIR/environment.sh"
|
||||||
|
|
||||||
|
echo "开始替换Gateway配置文件中的环境变量..."
|
||||||
|
|
||||||
|
# 定义源配置文件和目标目录
|
||||||
|
SOURCE_FILE="$SCRIPT_DIR/application.yml"
|
||||||
|
TEMP_DIR="$SCRIPT_DIR/temp"
|
||||||
|
TARGET_FILE="$TEMP_DIR/application.yml"
|
||||||
|
|
||||||
|
# 检查源配置文件是否存在
|
||||||
|
if [ ! -f "$SOURCE_FILE" ]; then
|
||||||
|
echo "错误: 配置文件 $SOURCE_FILE 不存在!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 创建临时目录
|
||||||
|
rm -rf "$TEMP_DIR"
|
||||||
|
mkdir -p "$TEMP_DIR"
|
||||||
|
|
||||||
|
echo "处理文件: application.yml"
|
||||||
|
|
||||||
|
# 读取原始文件内容
|
||||||
|
content=$(cat "$SOURCE_FILE")
|
||||||
|
|
||||||
|
# 获取environment.sh中所有环境变量
|
||||||
|
env_vars=$(grep -E "^export [A-Z_]+" "$ROOT_DIR/environment.sh" | sed 's/export //')
|
||||||
|
|
||||||
|
# 逐个替换环境变量
|
||||||
|
for var in $env_vars; do
|
||||||
|
var_name=$(echo $var | cut -d= -f1)
|
||||||
|
var_value=${!var_name}
|
||||||
|
if [ ! -z "$var_value" ]; then
|
||||||
|
# 使用简单的变量替换方法
|
||||||
|
pattern="\\\${$var_name}"
|
||||||
|
echo " 替换变量: ${pattern} -> $var_value"
|
||||||
|
content=$(echo "$content" | sed "s|${pattern}|$var_value|g")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# 写入处理后的内容到目标文件
|
||||||
|
echo "$content" > "$TARGET_FILE"
|
||||||
|
|
||||||
|
echo "环境变量替换完成! 替换后的文件位于 $TARGET_FILE"
|
||||||
|
echo "此文件将在启动Gateway容器时使用"
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 确保在脚本所在目录执行
|
||||||
|
cd "$(dirname "$0")"
|
||||||
|
SCRIPT_DIR="$(pwd)"
|
||||||
|
echo "当前工作目录: $SCRIPT_DIR"
|
||||||
|
|
||||||
|
# 获取项目根目录
|
||||||
|
ROOT_DIR="$(cd ../.. && pwd)"
|
||||||
|
echo "项目根目录: $ROOT_DIR"
|
||||||
|
|
||||||
|
# 加载环境变量
|
||||||
|
source "$ROOT_DIR/environment.sh"
|
||||||
|
echo "已加载环境变量"
|
||||||
|
|
||||||
|
# 执行变量替换脚本
|
||||||
|
echo "开始替换环境变量..."
|
||||||
|
bash "$SCRIPT_DIR/replace_vars.sh"
|
||||||
|
|
||||||
|
# 检查替换是否成功
|
||||||
|
if [ ! -f "$SCRIPT_DIR/temp/application.yml" ]; then
|
||||||
|
echo "错误: 替换后的配置文件不存在: $SCRIPT_DIR/temp/application.yml"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "配置文件替换成功,准备启动Gateway容器..."
|
||||||
|
|
||||||
|
# 先停止和删除现有容器
|
||||||
|
if docker ps -a | grep -q ${GATEWAY_NAME}; then
|
||||||
|
echo "停止并删除已存在的 ${GATEWAY_NAME} 容器..."
|
||||||
|
docker stop ${GATEWAY_NAME} >/dev/null 2>&1
|
||||||
|
docker rm ${GATEWAY_NAME} >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 启动Gateway容器
|
||||||
|
echo "正在启动 ${GATEWAY_NAME} 容器..."
|
||||||
|
docker run --pull always -d \
|
||||||
|
--name ${GATEWAY_NAME} \
|
||||||
|
--network ${NETWORK} \
|
||||||
|
--add-host ${OIDC_SERVER_DOMAIN}:host-gateway \
|
||||||
|
--env TZ=Asia/Shanghai \
|
||||||
|
--env SPRING_CONFIG_LOCATION=file:/data/java/tuoheng/application.yml \
|
||||||
|
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
|
||||||
|
--mount type=bind,source="$SCRIPT_DIR/temp/application.yml",target=/data/java/tuoheng/application.yml,readonly \
|
||||||
|
--memory ${GATEWAY_MEMORY} \
|
||||||
|
--restart unless-stopped \
|
||||||
|
${GATEWAY_IMAGE}
|
||||||
|
|
||||||
|
# 检查启动结果
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "Gateway服务已成功启动"
|
||||||
|
docker ps | grep ${GATEWAY_NAME}
|
||||||
|
else
|
||||||
|
echo "Gateway服务启动失败,请检查日志"
|
||||||
|
docker logs ${GATEWAY_NAME}
|
||||||
|
fi
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
source ../environment.sh
|
||||||
|
|
||||||
|
|
||||||
|
if docker ps -a | grep -q ${HHZ_ADMIN_NAME}; then
|
||||||
|
echo "停止并删除已存在的 HHZ_ADMIN_NAME 容器..."
|
||||||
|
docker stop ${HHZ_ADMIN_NAME} >/dev/null 2>&1
|
||||||
|
docker rm ${HHZ_ADMIN_NAME} >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
docker run --pull always -d \
|
||||||
|
--name ${HHZ_ADMIN_NAME} \
|
||||||
|
--network ${NETWORK} \
|
||||||
|
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
|
||||||
|
--env SPRING_CLOUD_CONSUL_PORT=8500 \
|
||||||
|
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${HHZ_ADMIN_NAME} \
|
||||||
|
--env XXL_JOB_ADMIN_ADDRESSES=http://${XXLJOB_NAME}:8080/xxl-job-admin \
|
||||||
|
--env XXL_ENABLE=false \
|
||||||
|
--env SPRING_REDIS_HOST=${REDIS_NAME} \
|
||||||
|
--env SPRING_REDIS_PORT=6379 \
|
||||||
|
--env SPRING_DATASOURCE_URL="jdbc:mysql://${MYSQL_NAME}:3306/tuoheng_hhz?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=true&tinyInt1isBit=false" \
|
||||||
|
--env SPRING_DATASOURCE_USERNAME=root \
|
||||||
|
--env SPRING_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD} \
|
||||||
|
--env SPRING_MQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env SPRING_MQTT_URL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env SPRING_MQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env SPRING_NEWMQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env SPRING_NEWMQTT_URL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env SPRING_NEWMQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env VIDEOSERVER_REQUESTURL=http://${STREAM_NAME}:8080 \
|
||||||
|
--env VIDEOSERVER_VIDEOPLAYURL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/recording/ \
|
||||||
|
--env SPRING_KAFKA_BOOTSTRAP_SERVERS=${KAFKA_NAME}:9092 \
|
||||||
|
--env MINIO_OSS_ENDPOINT=http://${MINIO_NAME}:9000 \
|
||||||
|
--env MINIO_OSS_OUTENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
|
||||||
|
--env MINIO_DAJIOSS_ENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
|
||||||
|
--env MINIO_OSS_ACCESSKEYID=${MINIO_ACCESS_KEY} \
|
||||||
|
--env MINIO_OSS_ACCESSKEYSECRET=${MINIO_SECRET_KEY} \
|
||||||
|
--env TUOHENG_OIDC-URL=https://${OIDC_ADMIN_DOMAIN_FULL} \
|
||||||
|
--env TUOHENG_DSP_CALLBACK_URL=https://${HHZ_DOMAIN_FULL}/hhz/admin/dsp/{requestId}/callback \
|
||||||
|
--env TUOHENG_DSP_DOMAIN_URL=http://${DSP_API_NAME}:9015/ \
|
||||||
|
--env TZ=Asia/Shanghai \
|
||||||
|
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
|
||||||
|
--memory ${HHZ_ADMIN_MEMORY} \
|
||||||
|
--restart unless-stopped \
|
||||||
|
${HHZ_ADMIN_IMAGE}
|
||||||
|
|
||||||
|
# 下面这句话
|
||||||
|
# --env TUOHENG_DSP_DOMAIN_URL=http://${DSP_API_NAME}:9015/ \
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
source ../environment.sh
|
||||||
|
|
||||||
|
|
||||||
|
if docker ps -a | grep -q ${HHZ_API_NAME}; then
|
||||||
|
echo "停止并删除已存在的 HHZ_API_NAME 容器..."
|
||||||
|
docker stop ${HHZ_API_NAME} >/dev/null 2>&1
|
||||||
|
docker rm ${HHZ_API_NAME} >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
docker run --pull always -d \
|
||||||
|
--name ${HHZ_API_NAME} \
|
||||||
|
--network ${NETWORK} \
|
||||||
|
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
|
||||||
|
--env SPRING_CLOUD_CONSUL_PORT=8500 \
|
||||||
|
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${HHZ_API_NAME} \
|
||||||
|
--env XXL_JOB_ADMIN_ADDRESSES=http://${XXLJOB_NAME}:8080/xxl-job-admin \
|
||||||
|
--env XXL_ENABLE=false \
|
||||||
|
--env SPRING_REDIS_HOST=${REDIS_NAME} \
|
||||||
|
--env SPRING_REDIS_PORT=6379 \
|
||||||
|
--env SPRING_DATASOURCE_URL="jdbc:mysql://${MYSQL_NAME}:3306/tuoheng_hhz?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=true&tinyInt1isBit=false" \
|
||||||
|
--env SPRING_DATASOURCE_USERNAME=root \
|
||||||
|
--env SPRING_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD} \
|
||||||
|
--env SPRING_MQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env SPRING_MQTT_URL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env SPRING_MQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env SPRING_NEWMQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env SPRING_NEWMQTT_URL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env SPRING_NEWMQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
|
||||||
|
--env VIDEOSERVER_REQUESTURL=http://${STREAM_NAME}:8080 \
|
||||||
|
--env VIDEOSERVER_VIDEOPLAYURL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/recording/ \
|
||||||
|
--env SPRING_KAFKA_BOOTSTRAP_SERVERS=${KAFKA_NAME}:9092 \
|
||||||
|
--env MINIO_OSS_ENDPOINT=http://${MINIO_NAME}:9000 \
|
||||||
|
--env MINIO_OSS_OUTENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
|
||||||
|
--env MINIO_DAJIOSS_ENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
|
||||||
|
--env MINIO_OSS_ACCESSKEYID=${MINIO_ACCESS_KEY} \
|
||||||
|
--env MINIO_OSS_ACCESSKEYSECRET=${MINIO_SECRET_KEY} \
|
||||||
|
--env TUOHENG_DSP_DOMAIN_URL=http://${DSP_API_NAME}:9015/ \
|
||||||
|
--env TUOHENG_DSP_CALLBACK_URL=http://${HHZ_API_NAME}:9055/api/dsp/{requestId}/callback \
|
||||||
|
--env TZ=Asia/Shanghai \
|
||||||
|
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
|
||||||
|
--memory ${HHZ_API_MEMORY} \
|
||||||
|
--restart unless-stopped \
|
||||||
|
${HHZ_API_IMAGE}
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
#!/bin/bash
|
||||||
|
source ../environment.sh
|
||||||
|
|
||||||
|
# 检查并停止/删除已存在的容器
|
||||||
|
if docker ps -a | grep -q ${NGINX_NAME}; then
|
||||||
|
echo "停止并删除已存在的 ${NGINX_NAME} 容器..."
|
||||||
|
docker stop ${NGINX_NAME} >/dev/null 2>&1
|
||||||
|
docker rm ${NGINX_NAME} >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 准备 docker run 命令
|
||||||
|
DOCKER_RUN_CMD="docker run --pull always -d \
|
||||||
|
--name ${NGINX_NAME} \
|
||||||
|
--network ${NETWORK} \
|
||||||
|
-p ${NGINX_HTTP_PORT}:80 \
|
||||||
|
-p ${NGINX_HTTPS_PORT}:443 \
|
||||||
|
--env TZ=Asia/Shanghai \
|
||||||
|
--memory ${NGINX_MEMORY} \
|
||||||
|
--volume ${STREAM_DATA}:/data/recording \
|
||||||
|
--volume ${SRS_DATA}:/data/srs \
|
||||||
|
--restart unless-stopped"
|
||||||
|
|
||||||
|
# 如果配置了证书,添加证书挂载
|
||||||
|
if [ ! -z "${PEM_PATH}" ] && [ ! -z "${KEY_PATH}" ]; then
|
||||||
|
echo "检测到证书配置,将挂载证书文件..."
|
||||||
|
if [ ! -f "${PEM_PATH}" ] || [ ! -f "${KEY_PATH}" ]; then
|
||||||
|
echo "错误:证书文件不存在!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
DOCKER_RUN_CMD="${DOCKER_RUN_CMD} \
|
||||||
|
--volume ${PEM_PATH}:/etc/nginx/t-aaron.com.pem \
|
||||||
|
--volume ${KEY_PATH}:/etc/nginx/t-aaron.com.key"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 添加镜像名称并运行容器
|
||||||
|
DOCKER_RUN_CMD="${DOCKER_RUN_CMD} ${NGINX_IMAGE}"
|
||||||
|
|
||||||
|
# 执行 docker run 命令
|
||||||
|
echo "启动 Nginx 容器..."
|
||||||
|
eval ${DOCKER_RUN_CMD}
|
||||||
|
|
||||||
|
# 检查容器是否成功启动
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "Nginx 容器启动成功!"
|
||||||
|
docker ps | grep ${NGINX_NAME}
|
||||||
|
else
|
||||||
|
echo "错误:Nginx 容器启动失败!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
source ../environment.sh
|
||||||
|
|
||||||
|
# 获取 NGINX 容器的 IP 地址
|
||||||
|
NGINX_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${NGINX_NAME})
|
||||||
|
if [ -z "$NGINX_IP" ]; then
|
||||||
|
echo "错误:无法获取 ${NGINX_NAME} 容器的 IP 地址"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "获取到 ${NGINX_NAME} 容器的 IP 地址: ${NGINX_IP}"
|
||||||
|
|
||||||
|
if docker ps -a | grep -q ${OIDC_SERVER_NAME}; then
|
||||||
|
echo "停止并删除已存在的 OIDC_SERVER_NAME 容器..."
|
||||||
|
docker stop ${OIDC_SERVER_NAME} >/dev/null 2>&1
|
||||||
|
docker rm ${OIDC_SERVER_NAME} >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
docker run --pull always -d \
|
||||||
|
--name ${OIDC_SERVER_NAME} \
|
||||||
|
--network ${NETWORK} \
|
||||||
|
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
|
||||||
|
--env SPRING_CLOUD_CONSUL_PORT=8500 \
|
||||||
|
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${OIDC_SERVER_NAME} \
|
||||||
|
--env XXL_JOB_ADMIN_ADDRESSES=http://${XXLJOB_NAME}:8080/xxl-job-admin \
|
||||||
|
--env XXL_ENABLE=false \
|
||||||
|
--env SPRING_REDIS_HOST=${REDIS_NAME} \
|
||||||
|
--env SPRING_REDIS_PORT=6379 \
|
||||||
|
--env SPRING_DATASOURCE_URL="jdbc:mysql://${MYSQL_NAME}:3306/tuoheng_oidc?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=true&tinyInt1isBit=false" \
|
||||||
|
--env SPRING_DATASOURCE_USERNAME=root \
|
||||||
|
--env SPRING_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD} \
|
||||||
|
--env THIRD_TOKEN_ISSUER=http://${OIDC_SERVER_NAME}:8090 \
|
||||||
|
--env OAUTH2_TOKEN_ISSUER=https://${OIDC_DOMAIN_FULL} \
|
||||||
|
--env SPRING_SECURITY_OAUTH2_RESOURCE-SERVER_JWT_ISSUER-URI=https://${OIDC_DOMAIN_FULL} \
|
||||||
|
--env TZ=Asia/Shanghai \
|
||||||
|
--env SPRING_KAFKA_BOOTSTRAP_SERVERS=${KAFKA_NAME}:9092 \
|
||||||
|
--add-host ${OIDC_SERVER_DOMAIN}:${NGINX_IP} \
|
||||||
|
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
|
||||||
|
--memory ${OIDC_SERVER_MEMORY} \
|
||||||
|
--restart unless-stopped \
|
||||||
|
${OIDC_SERVER_IMAGE}
|
||||||
|
|
||||||
Loading…
Reference in New Issue