commit
be16248718
|
|
@ -1,31 +1,97 @@
|
|||
#!/bin/bash
|
||||
# 定基本环境变量并导出
|
||||
# 所有端口都为主机对外爆露的端口
|
||||
export DOMAIN=bazhong
|
||||
export NETWORK="swarm_network_$DOMAIN"
|
||||
|
||||
export HOST_IP=127.0.0.1
|
||||
export HOST_NAME=localhost
|
||||
export REGISTRY=registry.t-aaron.com
|
||||
|
||||
#MySql 端口暴露出来方便访问
|
||||
export REGISTRY_HOST=${REGISTRY}/tuoheng/
|
||||
#export REGISTRY_HOST=""
|
||||
#MySql 配置
|
||||
export MYSQL_PORT=3308
|
||||
export MYSQL_ROOT_PASSWORD=tuoheng2024
|
||||
export MYSQL_IMAGE=${REGISTRY}/tuoheng/mysql:8.0.25
|
||||
export MYSQL_IMAGE=${REGISTRY_HOST}mysql:8.0.25
|
||||
export MYSQL_DATA=${NETWORK}_mysql_data
|
||||
export MYSQL_NAME=MYSQL_${DOMAIN}
|
||||
export MYSQL_MEMORY=1g
|
||||
|
||||
#Redis 配置
|
||||
export REDIS_PORT=6380
|
||||
export REDIS_IMAGE=${REGISTRY}/tuoheng/redis:latest
|
||||
export REDIS_IMAGE=${REGISTRY_HOST}redis:latest
|
||||
export REDIS_DATA=${NETWORK}_redis_data
|
||||
export REDIS_NAME=REDIS_${DOMAIN}
|
||||
export REDIS_MEMORY=512m
|
||||
|
||||
|
||||
#MQTT 配置
|
||||
export MQTT_PORT=1883
|
||||
export MQTT_WS_PORT=9001
|
||||
export MQTT_IMAGE=${REGISTRY}/tuoheng/eclipse-mosquitto:latest
|
||||
export MQTT_IMAGE=${REGISTRY_HOST}eclipse-mosquitto:latest
|
||||
export MQTT_NAME=MQTT_${DOMAIN}
|
||||
export MQTT_MEMORY=512m
|
||||
|
||||
#Kafka 配置
|
||||
export KAFKA_PORT=9092
|
||||
export KAFKA_IMAGE=${REGISTRY_HOST}confluentinc/cp-kafka:latest
|
||||
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
|
||||
|
||||
|
||||
# Consul 配置
|
||||
export CONSUL_NAME=CONSUL_${DOMAIN}
|
||||
export CONSUL_IMAGE=${REGISTRY_HOST}consul:latest
|
||||
export CONSUL_PORT="8500"
|
||||
export CONSUL_MEMORY="512m"
|
||||
|
||||
# XXL-Job 配置
|
||||
export XXLJOB_NAME=XXL_JOB_${DOMAIN}
|
||||
export XXLJOB_IMAGE=${REGISTRY_HOST}xuxueli/xxl-job-admin:2.4.0
|
||||
export XXLJOB_PORT=8282
|
||||
export XXLJOB_MEMORY=512m
|
||||
export XXLJOB_ACCESS_TOKEN=default_token
|
||||
|
||||
|
||||
export SKY_AOP="sky-oap:11800"
|
||||
#主机INGRESS_PORT 映射到容器80 INGRESS_SSL_PORT 映射到容器 443
|
||||
export INGRESS_PORT=80
|
||||
|
|
@ -39,3 +105,8 @@ export TZ=Asia/Shanghai
|
|||
export SPRING_CLOUD_CONSUL_HOST=consul
|
||||
export SPRING_CLOUD_CONSUL_PORT=8500
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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_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
|
||||
|
||||
|
||||
|
||||
|
||||
# 启动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
|
||||
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
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,0 +1,63 @@
|
|||
source ../environment.sh
|
||||
|
||||
if [ -z "$NETWORK" ]; then
|
||||
echo "错误: 未找到 NETWORK 环境变量"
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$CONSUL_NAME" ]; then
|
||||
echo "错误: 未找到 CONSUL_NAME 环境变量"
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$CONSUL_IMAGE" ]; then
|
||||
echo "错误: 未找到 CONSUL_IMAGE 环境变量"
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$CONSUL_PORT" ]; then
|
||||
echo "错误: 未找到 CONSUL_PORT 环境变量"
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$CONSUL_MEMORY" ]; then
|
||||
echo "错误: 未找到 CONSUL_MEMORY 环境变量"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 停止并删除已存在的容器
|
||||
if docker ps -a | grep -q ${CONSUL_NAME}; then
|
||||
echo "停止并删除已存在的 Consul 容器..."
|
||||
docker stop ${CONSUL_NAME} >/dev/null 2>&1
|
||||
docker rm ${CONSUL_NAME} >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
|
||||
# 启动Consul容器
|
||||
echo "启动 Consul..."
|
||||
docker run -d \
|
||||
--name ${CONSUL_NAME} \
|
||||
--network $NETWORK \
|
||||
--memory $CONSUL_MEMORY \
|
||||
--restart unless-stopped \
|
||||
-p ${CONSUL_PORT}:8500 \
|
||||
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
|
||||
$CONSUL_IMAGE agent -dev -client=0.0.0.0 -ui
|
||||
|
||||
# 等待Consul启动
|
||||
echo "等待 Consul 就绪..."
|
||||
until docker exec ${CONSUL_NAME} consul members 2>/dev/null; do
|
||||
echo "等待 Consul 启动..."
|
||||
sleep 3
|
||||
done
|
||||
|
||||
echo "Consul 部署完成!"
|
||||
echo "UI 访问地址: http://localhost:${CONSUL_PORT}"
|
||||
|
||||
|
||||
# echo "Service $SERVICE_NAME . Creating..."
|
||||
# docker service create \
|
||||
# --name "$SERVICE_NAME" \
|
||||
# --env CONSUL_BIND_INTERFACE=eth0 \
|
||||
# --restart-condition any \
|
||||
# --network "$NETWORK" \
|
||||
# --publish published=8500,target=8500 \
|
||||
# --constraint 'node.role == manager' \
|
||||
# consul
|
||||
# docker service ls
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
#!/bin/bash
|
||||
source ../environment.sh
|
||||
|
||||
if [ -z "$NETWORK" ]; then
|
||||
echo "错误: 未找到 NETWORK 环境变量"
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$XXLJOB_NAME" ]; then
|
||||
echo "错误: 未找到 XXLJOB_NAME 环境变量"
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$XXLJOB_IMAGE" ]; then
|
||||
echo "错误: 未找到 XXLJOB_IMAGE 环境变量"
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$XXLJOB_PORT" ]; then
|
||||
echo "错误: 未找到 XXLJOB_PORT 环境变量"
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$XXLJOB_MEMORY" ]; then
|
||||
echo "错误: 未找到 XXLJOB_MEMORY 环境变量"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# 停止并删除已存在的容器
|
||||
if docker ps -a | grep -q ${XXLJOB_NAME}; then
|
||||
echo "停止并删除已存在的 XXL-Job 容器..."
|
||||
docker stop ${XXLJOB_NAME} >/dev/null 2>&1
|
||||
docker rm ${XXLJOB_NAME} >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
# 检查 MySQL 是否运行
|
||||
echo "检查 MySQL 连接..."
|
||||
docker exec ${MYSQL_NAME} mysqladmin -uroot -p${MYSQL_ROOT_PASSWORD} ping >/dev/null 2>&1 || {
|
||||
echo "错误: MySQL 未运行或连接失败,请先启动 MySQL"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 启动 XXL-Job 容器
|
||||
echo "启动 XXL-Job..."
|
||||
docker run -d \
|
||||
--name ${XXLJOB_NAME} \
|
||||
--network $NETWORK \
|
||||
--memory $XXLJOB_MEMORY \
|
||||
--restart unless-stopped \
|
||||
-p ${XXLJOB_PORT}:8080 \
|
||||
-e PARAMS=" \
|
||||
--spring.datasource.url=jdbc:mysql://${MYSQL_NAME}:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai \
|
||||
--spring.datasource.username=root \
|
||||
--spring.datasource.password=${MYSQL_ROOT_PASSWORD} \
|
||||
--xxl.job.accessToken=${XXLJOB_ACCESS_TOKEN:-default_token} \
|
||||
--server.servlet.context-path=/xxl-job-admin" \
|
||||
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
|
||||
$XXLJOB_IMAGE
|
||||
|
||||
# 等待 XXL-Job 启动
|
||||
echo "等待 XXL-Job 就绪..."
|
||||
echo "访问地址: http://localhost:${XXLJOB_PORT}/xxl-job-admin"
|
||||
echo "默认账号: admin / 123456"
|
||||
|
||||
|
||||
# # 读取变量
|
||||
# source ../environment.sh
|
||||
# SERVICE_NAME="xxljob"
|
||||
|
||||
# if docker service ls --filter "name=$SERVICE_NAME" | grep -q "$SERVICE_NAME"; then
|
||||
# echo "Service $SERVICE_NAME exists. Deleting..."
|
||||
# docker service rm $SERVICE_NAME
|
||||
# fi
|
||||
# echo "Service $SERVICE_NAME . Creating..."
|
||||
# docker service create \
|
||||
# --name "$SERVICE_NAME" \
|
||||
# -e PARAMS="--xxl.job.accessToken=tuoheng --spring.datasource.url=jdbc:mysql://mysql:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 --spring.datasource.username=root --spring.datasource.password=$MYSQL_ROOT_PASSWORD" \
|
||||
# --restart-condition any \
|
||||
# --network "$NETWORK" \
|
||||
# --publish "8181:8080" \
|
||||
# --constraint 'node.role == manager' \
|
||||
# xuxueli/xxl-job-admin:2.4.0
|
||||
# docker service ls
|
||||
|
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,62 @@
|
|||
source ../environment.sh
|
||||
if [ -z "$NETWORK" ]; then
|
||||
echo "错误: 未找到 NETWORK 环境变量"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$HOST_IP" ]; then
|
||||
echo "错误: 未找到 HOST_IP 环境变量"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$KAFKA_PORT" ]; then
|
||||
echo "错误: 未找到 KAFKA_PORT 环境变量"
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$KAFKA_NAME" ]; then
|
||||
echo "错误: 未找到 KAFKA_NAME 环境变量"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$KAFKA_IMAGE" ]; then
|
||||
echo "错误: 未找到 KAFKA_IMAGE 环境变量"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$KAFKA_MEMORY" ]; then
|
||||
echo "错误: 未找到 KAFKA_MEMORY 环境变量"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
if docker ps -a | grep -q ${KAFKA_NAME}; then
|
||||
echo "停止并删除已存在的 KAFKA 容器..."
|
||||
docker stop ${KAFKA_NAME} >/dev/null 2>&1
|
||||
docker rm ${KAFKA_NAME} >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
|
||||
docker run -d \
|
||||
--name ${KAFKA_NAME} \
|
||||
--network $NETWORK \
|
||||
-p ${KAFKA_PORT}:9092 \
|
||||
-e KAFKA_NODE_ID=1 \
|
||||
-e KAFKA_PROCESS_ROLES=broker,controller \
|
||||
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:29093 \
|
||||
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://${HOST_IP}:${KAFKA_PORT} \
|
||||
-e KAFKA_CONTROLLER_QUORUM_VOTERS=1@${KAFKA_NAME}:29093 \
|
||||
-e KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER \
|
||||
-e CLUSTER_ID=b8f3a0c1-1234-5678-9abc-def012345678 \
|
||||
-e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT \
|
||||
-e KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT \
|
||||
-e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
|
||||
-e KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1 \
|
||||
-e KAFKA_TRANSACTION_STATE_LOG_MIN_ISR=1 \
|
||||
-e KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS=0 \
|
||||
-e KAFKA_NUM_PARTITIONS=3 \
|
||||
-e KAFKA_AUTO_CREATE_TOPICS_ENABLE=true \
|
||||
--memory ${KAFKA_MEMORY} --restart unless-stopped ${KAFKA_IMAGE}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -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
|
||||
|
|
@ -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"
|
||||
|
|
@ -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
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue