This commit is contained in:
孙小云 2025-05-14 19:45:19 +08:00
parent c0fcb6004f
commit f081543b18
10 changed files with 382 additions and 1 deletions

View File

@ -38,6 +38,46 @@ export KAFKA_NAME=KAFKA_${DOMAIN}
export KAFKA_MEMORY=512m
#SRS 配置
export SRS_NAME=SRS_${DOMAIN}
export SRS_HTTP_PORT=8080
export SRS_RTMP_PORT=1935
export SRS_RTC_PORT=8000
export SRS_MEMORY=512m
export SRS_IMAGE=registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5
export SRS_DATA=${NETWORK}_srs_data
#Minio 配置
export MINIO_NAME=MINIO_${DOMAIN}
export MINIO_MEMORY=512m
export MINIO_IMAGE=quay.io/minio/minio
export MINIO_DATA=${NETWORK}_minio_data
export MINIO_API_PORT=9000
export MINIO_CONSOLE_PORT=9002
export MINIO_ROOT_USER=miniopassword
export MINIO_ROOT_PASSWORD=miniopassword
# Elasticsearch 配置
export ES_NAME=ES_${DOMAIN}
export ES_IMAGE=elasticsearch:7.8.0
export ES_MEMORY=1g
export ES_PORT=9200
export ES_DATA=${NETWORK}_es_data
# SkyWalking 配置
export SKYWALKING_OAP_NAME=SKYWALKING_OAP_${DOMAIN}
export SKYWALKING_UI_NAME=SKYWALKING_UI_${DOMAIN}
export SKYWALKING_OAP_IMAGE=apache/skywalking-oap-server:8.6.0-es7
export SKYWALKING_UI_IMAGE=apache/skywalking-ui:8.6.0
export SKYWALKING_OAP_MEMORY=512m
export SKYWALKING_UI_MEMORY=512m
export SKYWALKING_UI_PORT=8181
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=${SKYWALKING_OAP_NAME}:11800
export SKYWALKING_USERNAME=skywalking
export SKYWALKING_PASSWORD=skywalking
export SKY_AOP="sky-oap:11800"
#主机INGRESS_PORT 映射到容器80 INGRESS_SSL_PORT 映射到容器 443
export INGRESS_PORT=80
@ -51,3 +91,7 @@ export TZ=Asia/Shanghai
export SPRING_CLOUD_CONSUL_HOST=consul
export SPRING_CLOUD_CONSUL_PORT=8500

63
init/10.sky-oap.sh Executable file
View File

@ -0,0 +1,63 @@
source ../environment.sh
if [ -z "$NETWORK" ]; then
echo "错误: 未找到 NETWORK 环境变量"
exit 1
fi
if [ -z "$SKYWALKING_OAP_NAME" ]; then
echo "错误: 未找到 SKYWALKING_OAP_NAME 环境变量"
exit 1
fi
if [ -z "$SKYWALKING_UI_NAME" ]; then
echo "错误: 未找到 SKYWALKING_UI_NAME 环境变量"
exit 1
fi
if [ -z "$SKYWALKING_OAP_IMAGE" ]; then
echo "错误: 未找到 SKYWALKING_OAP_IMAGE 环境变量"
exit 1
fi
if [ -z "$SKYWALKING_UI_IMAGE" ]; then
echo "错误: 未找到 SKYWALKING_UI_IMAGE 环境变量"
exit 1
fi
if [ -z "$SKYWALKING_OAP_MEMORY" ]; then
echo "错误: 未找到 SKYWALKING_OAP_MEMORY 环境变量"
exit 1
fi
if [ -z "$SKYWALKING_UI_MEMORY" ]; then
echo "错误: 未找到 SKYWALKING_UI_MEMORY 环境变量"
exit 1
fi
if [ -z "$SKYWALKING_UI_PORT" ]; then
echo "错误: 未找到 SKYWALKING_UI_PORT 环境变量"
exit 1
fi
# 停止并删除已存在的容器
if docker ps -a | grep -q ${SKYWALKING_OAP_NAME}; then
echo "停止并删除已存在的 SkyWalking OAP 容器..."
docker stop ${SKYWALKING_OAP_NAME} >/dev/null 2>&1
docker rm ${SKYWALKING_OAP_NAME} >/dev/null 2>&1
fi
if docker ps -a | grep -q ${SKYWALKING_UI_NAME}; then
echo "停止并删除已存在的 SkyWalking UI 容器..."
docker stop ${SKYWALKING_UI_NAME} >/dev/null 2>&1
docker rm ${SKYWALKING_UI_NAME} >/dev/null 2>&1
fi
# 启动SkyWalking OAP容器
echo "启动 SkyWalking OAP..."
docker run -d \
--name ${SKYWALKING_OAP_NAME} \
--network $NETWORK \
--memory $SKYWALKING_OAP_MEMORY \
--restart unless-stopped \
-e SW_STORAGE=elasticsearch7 \
-e SW_STORAGE_ES_CLUSTER_NODES=${ES_NAME}:9200 \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
$SKYWALKING_OAP_IMAGE
# 等待OAP启动
# 确认 OAP 完全启动后再启动 UI

60
init/11.sky-ui.sh Executable file
View File

@ -0,0 +1,60 @@
source ../environment.sh
if [ -z "$NETWORK" ]; then
echo "错误: 未找到 NETWORK 环境变量"
exit 1
fi
if [ -z "$SKYWALKING_OAP_NAME" ]; then
echo "错误: 未找到 SKYWALKING_OAP_NAME 环境变量"
exit 1
fi
if [ -z "$SKYWALKING_UI_NAME" ]; then
echo "错误: 未找到 SKYWALKING_UI_NAME 环境变量"
exit 1
fi
if [ -z "$SKYWALKING_OAP_IMAGE" ]; then
echo "错误: 未找到 SKYWALKING_OAP_IMAGE 环境变量"
exit 1
fi
if [ -z "$SKYWALKING_UI_IMAGE" ]; then
echo "错误: 未找到 SKYWALKING_UI_IMAGE 环境变量"
exit 1
fi
if [ -z "$SKYWALKING_OAP_MEMORY" ]; then
echo "错误: 未找到 SKYWALKING_OAP_MEMORY 环境变量"
exit 1
fi
if [ -z "$SKYWALKING_UI_MEMORY" ]; then
echo "错误: 未找到 SKYWALKING_UI_MEMORY 环境变量"
exit 1
fi
if [ -z "$SKYWALKING_UI_PORT" ]; then
echo "错误: 未找到 SKYWALKING_UI_PORT 环境变量"
exit 1
fi
if docker ps -a | grep -q ${SKYWALKING_UI_NAME}; then
echo "停止并删除已存在的 SkyWalking UI 容器..."
docker stop ${SKYWALKING_UI_NAME} >/dev/null 2>&1
docker rm ${SKYWALKING_UI_NAME} >/dev/null 2>&1
fi
echo "启动 SkyWalking UI..."
docker run -d \
--name ${SKYWALKING_UI_NAME} \
--network $NETWORK \
--memory $SKYWALKING_UI_MEMORY \
--restart unless-stopped \
-p ${SKYWALKING_UI_PORT}:8080 \
-e TZ=Asia/Shanghai \
-e SW_OAP_ADDRESS=http://${SKYWALKING_OAP_NAME}:12800 \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
$SKYWALKING_UI_IMAGE
echo "SkyWalking 部署完成!"
echo "OAP 端口: ${SKYWALKING_OAP_PORT}"
echo "UI 访问地址: http://localhost:${SKYWALKING_UI_PORT}"

0
init/12.consul.sh Normal file
View File

View File

@ -16,3 +16,31 @@ else
fi
source ../environment.sh
if ! docker volume inspect ${SRS_DATA} >/dev/null 2>&1; then
docker volume create ${SRS_DATA}
echo "创建 ${SRS_DATA} 卷成功"
else
echo "${SRS_DATA} 卷已存在"
fi
source ../environment.sh
if ! docker volume inspect ${MINIO_DATA} >/dev/null 2>&1; then
docker volume create ${MINIO_DATA}
echo "创建 ${MINIO_DATA} 卷成功"
else
echo "${MINIO_DATA} 卷已存在"
fi
source ../environment.sh
if ! docker volume inspect ${ES_DATA} >/dev/null 2>&1; then
docker volume create ${ES_DATA}
echo "创建 ${ES_DATA} 卷成功"
else
echo "${ES_DATA} 卷已存在"
fi

54
init/7.srs.sh Executable file
View File

@ -0,0 +1,54 @@
source ../environment.sh
if [ -z "$NETWORK" ]; then
echo "错误: 未找到 NETWORK 环境变量"
exit 1
fi
if [ -z "$SRS_NAME" ]; then
echo "错误: 未找到 SRS_NAME 环境变量"
exit 1
fi
if [ -z "$SRS_IMAGE" ]; then
echo "错误: 未找到 SRS_IMAGE 环境变量"
exit 1
fi
if [ -z "$SRS_MEMORY" ]; then
echo "错误: 未找到 SRS_MEMORY 环境变量"
exit 1
fi
if [ -z "$SRS_RTMP_PORT" ]; then
echo "错误: 未找到 SRS_RTMP_PORT 环境变量"
exit 1
fi
if [ -z "$SRS_HTTP_PORT" ]; then
echo "错误: 未找到 SRS_HTTP_PORT 环境变量"
exit 1
fi
if [ -z "$SRS_RTC_PORT" ]; then
echo "错误: 未找到 SRS_RTC_PORT 环境变量"
exit 1
fi
if [ -z "$SRS_DATA" ]; then
echo "错误: 未找到 SRS_DATA 环境变量"
exit 1
fi
if docker ps -a | grep -q ${SRS_NAME}; then
echo "停止并删除已存在的 SRS 容器..."
docker stop ${SRS_NAME} >/dev/null 2>&1
docker rm ${SRS_NAME} >/dev/null 2>&1
fi
# 启动SRS容器
# 启动SRS容器
docker run -d \
--name ${SRS_NAME} \
--network $NETWORK \
--memory $SRS_MEMORY \
--restart unless-stopped \
-p ${SRS_RTMP_PORT}:1935 \
-p ${SRS_HTTP_PORT}:8080 \
-p ${SRS_RTC_PORT}:8000/udp \
-v "$(pwd)/volumes/srs/conf/srs.conf:/usr/local/srs/conf/srs.conf" \
-v "${SRS_DATA}:/usr/local/srs/objs" \
$SRS_IMAGE

57
init/8.minio.sh Executable file
View File

@ -0,0 +1,57 @@
source ../environment.sh
if [ -z "$NETWORK" ]; then
echo "错误: 未找到 NETWORK 环境变量"
exit 1
fi
if [ -z "$MINIO_NAME" ]; then
echo "错误: 未找到 MINIO_NAME 环境变量"
exit 1
fi
if [ -z "$MINIO_IMAGE" ]; then
echo "错误: 未找到 MINIO_IMAGE 环境变量"
exit 1
fi
if [ -z "$MINIO_MEMORY" ]; then
echo "错误: 未找到 MINIO_MEMORY 环境变量"
exit 1
fi
if [ -z "$MINIO_API_PORT" ]; then
echo "错误: 未找到 MINIO_API_PORT 环境变量"
exit 1
fi
if [ -z "$MINIO_CONSOLE_PORT" ]; then
echo "错误: 未找到 MINIO_CONSOLE_PORT 环境变量"
exit 1
fi
if [ -z "$MINIO_DATA" ]; then
echo "错误: 未找到 MINIO_DATA 环境变量"
exit 1
fi
if [ -z "$MINIO_ROOT_USER" ]; then
echo "错误: 未找到 MINIO_ROOT_USER 环境变量"
exit 1
fi
if [ -z "$MINIO_ROOT_PASSWORD" ]; then
echo "错误: 未找到 MINIO_ROOT_PASSWORD 环境变量"
exit 1
fi
if docker ps -a | grep -q ${MINIO_NAME}; then
echo "停止并删除已存在的 MinIO 容器..."
docker stop ${MINIO_NAME} >/dev/null 2>&1
docker rm ${MINIO_NAME} >/dev/null 2>&1
fi
# 启动MinIO容器
docker run -d \
--name ${MINIO_NAME} \
--network $NETWORK \
--memory $MINIO_MEMORY \
--restart unless-stopped \
-p ${MINIO_API_PORT}:9000 \
-p ${MINIO_CONSOLE_PORT}:9001 \
-e MINIO_ROOT_USER=${MINIO_ROOT_USER} \
-e MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD} \
-v "${MINIO_DATA}:/data" \
$MINIO_IMAGE server /data --console-address ":9001"

44
init/9.es.sh Executable file
View File

@ -0,0 +1,44 @@
source ../environment.sh
if [ -z "$NETWORK" ]; then
echo "错误: 未找到 NETWORK 环境变量"
exit 1
fi
if [ -z "$ES_NAME" ]; then
echo "错误: 未找到 ES_NAME 环境变量"
exit 1
fi
if [ -z "$ES_IMAGE" ]; then
echo "错误: 未找到 ES_IMAGE 环境变量"
exit 1
fi
if [ -z "$ES_MEMORY" ]; then
echo "错误: 未找到 ES_MEMORY 环境变量"
exit 1
fi
if [ -z "$ES_PORT" ]; then
echo "错误: 未找到 ES_PORT 环境变量"
exit 1
fi
if [ -z "$ES_DATA" ]; then
echo "错误: 未找到 ES_DATA 环境变量"
exit 1
fi
if docker ps -a | grep -q ${ES_NAME}; then
echo "停止并删除已存在的 Elasticsearch 容器..."
docker stop ${ES_NAME} >/dev/null 2>&1
docker rm ${ES_NAME} >/dev/null 2>&1
fi
# 启动Elasticsearch容器
docker run -d \
--name ${ES_NAME} \
--network $NETWORK \
--memory $ES_MEMORY \
--restart unless-stopped \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-v "${ES_DATA}:/usr/share/elasticsearch/data" \
$ES_IMAGE

View File

@ -0,0 +1,31 @@
listen 1935;
max_connections 1000;
srs_log_tank file;
srs_log_file ./objs/srs.log;
http_server {
enabled on;
listen 8080;
dir ./objs/nginx/html;
}
rtc_server {
enabled on;
listen 8000;
}
vhost __defaultVhost__ {
rtc {
enabled on;
}
http_remux {
enabled on;
mount [vhost]/[app]/[stream].flv;
}
hls {
enabled on;
hls_path ./objs/nginx/html;
hls_fragment 10;
hls_window 60;
}
}

0
server/oidc.sh Normal file
View File