This commit is contained in:
孙小云 2025-06-05 15:17:15 +08:00
parent 496f07f1a1
commit d849d13d56
8 changed files with 9 additions and 342 deletions

View File

@ -1,5 +1,12 @@
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 ${HHZ_ADMIN_NAME}; then
echo "停止并删除已存在的 HHZ_ADMIN_NAME 容器..."
@ -37,11 +44,13 @@ docker run --pull always -d \
--env MINIO_OSS_ACCESSKEYSECRET=${MINIO_SECRET_KEY} \
--env TUOHENG_DSP_CALLBACK_URL=https://${HHZ_DOMAIN_FULL}/hhz/admin/dsp/{requestId}/callback \
--env TZ=Asia/Shanghai \
--add-host ${OIDC_ADMIN_DOMAIN}:${NGINX_IP} \
--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/ \

View File

@ -1,44 +0,0 @@
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}

View File

@ -1,56 +0,0 @@
#!/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容器时使用"

View File

@ -1,56 +0,0 @@
#!/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

View File

@ -1,50 +0,0 @@
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/ \

View File

@ -1,44 +0,0 @@
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}

View File

@ -1,51 +0,0 @@
#!/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

View File

@ -1,41 +0,0 @@
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}