diff --git a/environment.sh b/environment.sh index d3e1b27..21a0354 100644 --- a/environment.sh +++ b/environment.sh @@ -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 @@ -38,4 +104,9 @@ export XXL_JOB=http://xxljob:8080/xxl-job-admin export TZ=Asia/Shanghai export SPRING_CLOUD_CONSUL_HOST=consul export SPRING_CLOUD_CONSUL_PORT=8500 + + + + + diff --git a/init/10.sky-oap.sh b/init/10.sky-oap.sh new file mode 100755 index 0000000..9c38983 --- /dev/null +++ b/init/10.sky-oap.sh @@ -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 + \ No newline at end of file diff --git a/init/11.sky-ui.sh b/init/11.sky-ui.sh new file mode 100755 index 0000000..fea8d52 --- /dev/null +++ b/init/11.sky-ui.sh @@ -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}" diff --git a/init/12.consul.sh b/init/12.consul.sh new file mode 100755 index 0000000..4d554dd --- /dev/null +++ b/init/12.consul.sh @@ -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 diff --git a/init/13.xxljob.sh b/init/13.xxljob.sh new file mode 100755 index 0000000..b056827 --- /dev/null +++ b/init/13.xxljob.sh @@ -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 diff --git a/init/2.volumn.sh b/init/2.volumn.sh index eb9d181..e846de9 100755 --- a/init/2.volumn.sh +++ b/init/2.volumn.sh @@ -15,4 +15,32 @@ else echo "${REDIS_DATA} 卷已存在" fi - \ No newline at end of file + +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 + + + diff --git a/init/6.kafka.sh b/init/6.kafka.sh new file mode 100755 index 0000000..ebd1cc5 --- /dev/null +++ b/init/6.kafka.sh @@ -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} + + + + \ No newline at end of file diff --git a/init/7.srs.sh b/init/7.srs.sh new file mode 100755 index 0000000..0049a66 --- /dev/null +++ b/init/7.srs.sh @@ -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 diff --git a/init/8.minio.sh b/init/8.minio.sh new file mode 100755 index 0000000..edb3e74 --- /dev/null +++ b/init/8.minio.sh @@ -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" diff --git a/init/9.es.sh b/init/9.es.sh new file mode 100755 index 0000000..1340192 --- /dev/null +++ b/init/9.es.sh @@ -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 \ No newline at end of file diff --git a/init/volumes/srs/conf/srs.conf b/init/volumes/srs/conf/srs.conf new file mode 100644 index 0000000..5ebe7e6 --- /dev/null +++ b/init/volumes/srs/conf/srs.conf @@ -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; + } +} diff --git a/server/oidc.sh b/server/oidc.sh new file mode 100644 index 0000000..e69de29