mirror of
https://gitee.com/pan648540858/wvp-GB28181-pro.git
synced 2026-05-22 13:27:52 +08:00
Merge branch 'feat-docker'
This commit is contained in:
commit
24cb9a6696
44
docker/build.sh
Executable file
44
docker/build.sh
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
#/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
version=2.7.3
|
||||||
|
|
||||||
|
git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git
|
||||||
|
cd wvp-GB28181-pro/web_src && \
|
||||||
|
npm install && \
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
cd ../../
|
||||||
|
cp -r wvp-GB28181-pro/src/main/resources/static/* ./nginx/dist
|
||||||
|
|
||||||
|
echo "构建ZLM容器"
|
||||||
|
cd ./media/
|
||||||
|
chmod +x ./build.sh
|
||||||
|
./build.sh
|
||||||
|
cd ../
|
||||||
|
|
||||||
|
echo "构建数据库容器"
|
||||||
|
cd ./mysql/
|
||||||
|
chmod +x ./build.sh
|
||||||
|
./build.sh
|
||||||
|
cd ../
|
||||||
|
|
||||||
|
echo "构建Redis容器"
|
||||||
|
cd ./redis/
|
||||||
|
chmod +x ./build.sh
|
||||||
|
./build.sh
|
||||||
|
cd ../
|
||||||
|
|
||||||
|
echo "构建WVP容器"
|
||||||
|
cd ./wvp/
|
||||||
|
chmod +x ./build.sh
|
||||||
|
./build.sh
|
||||||
|
cd ../
|
||||||
|
|
||||||
|
echo "构建Nginx容器"
|
||||||
|
cd ./nginx/
|
||||||
|
chmod +x ./build.sh
|
||||||
|
./build.sh
|
||||||
|
cd ../
|
||||||
|
|
||||||
|
./push.sh
|
||||||
@ -1,49 +1,125 @@
|
|||||||
version: '3'
|
version: '3'
|
||||||
services:
|
services:
|
||||||
redis:
|
polaris-redis:
|
||||||
image: redis
|
image: polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-redis:latest
|
||||||
restart: always
|
restart: unless-stopped
|
||||||
volumes:
|
healthcheck:
|
||||||
- ./redis/redis.conf:/etc/redis/redis_default.conf
|
test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ]
|
||||||
- ./redis/data/:/data
|
interval: 15s
|
||||||
environment:
|
timeout: 5s
|
||||||
TZ: "Asia/Shanghai"
|
retries: 10
|
||||||
command: redis-server /etc/redis/redis_default.conf --appendonly yes
|
start_period: 10s
|
||||||
wvp:
|
networks:
|
||||||
build:
|
- media-net
|
||||||
context: ./wvp
|
|
||||||
args:
|
|
||||||
gitUrl: "https://gitee.com/pan648540858"
|
|
||||||
zlmGitUrl: "https://gitee.com/xia-chu/ZLMediaKit"
|
|
||||||
restart: always
|
|
||||||
ports:
|
ports:
|
||||||
- "5060:5060"
|
- 6379:6379
|
||||||
- "5060:5060/udp"
|
|
||||||
- "18080:18080"
|
|
||||||
- "80:80"
|
|
||||||
- "10000:10000/tcp"
|
|
||||||
- "10000:10000/udp"
|
|
||||||
- "30000-30500:30000-30500/tcp"
|
|
||||||
- "30000-30500:30000-30500/udp"
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./video:/opt/media/www/record/
|
- ./redis/conf/redis.conf:/opt/polaris/redis/redis.conf
|
||||||
- ./logs/wvp:/opt/wvp/logs/
|
- ./volumes/redis/data/:/data
|
||||||
- ./logs/assist:/opt/assist/logs/
|
|
||||||
- ./logs/media:/opt/media/log/
|
|
||||||
environment:
|
environment:
|
||||||
TZ: "Asia/Shanghai"
|
TZ: "Asia/Shanghai"
|
||||||
# [必须修改] 本机的IP
|
command: redis-server /opt/polaris/redis/redis.conf --appendonly yes
|
||||||
WVP_HOST: 172.18.0.61
|
|
||||||
WVP_PWD: aseqw_+hiy123
|
polaris-mysql:
|
||||||
WVP_DOMAIN: 6101130049
|
image: polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-mysql:latest
|
||||||
WVP_ID: 61011300490000000001
|
restart: unless-stopped
|
||||||
REDIS_HOST: redis
|
healthcheck:
|
||||||
REDIS_PORT: 6379
|
test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/3306" ]
|
||||||
REDIS_DB: 6
|
interval: 15s
|
||||||
REDIS_PWD: root
|
timeout: 5s
|
||||||
ASSIST_JVM_CONFIG: -Xms128m -Xmx256m
|
retries: 10
|
||||||
WVP_JVM_CONFIG: -Xms128m -Xmx256m
|
start_period: 10s
|
||||||
ASSIST_CONFIG:
|
networks:
|
||||||
WVP_CONFIG:
|
- media-net
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: wvp
|
||||||
|
MYSQL_ROOT_PASSWORD: root
|
||||||
|
MYSQL_USER: root
|
||||||
|
MYSQL_PASSWORD: root
|
||||||
|
TZ: Asia/Shanghai
|
||||||
|
ports:
|
||||||
|
- 3306:3306
|
||||||
|
volumes:
|
||||||
|
- ./mysql/conf:/etc/mysql/conf.d
|
||||||
|
- ./logs/mysql:/logs
|
||||||
|
- ./volumes/mysql/data:/var/lib/mysql
|
||||||
|
command: [
|
||||||
|
'mysqld',
|
||||||
|
'--default-authentication-plugin=mysql_native_password',
|
||||||
|
'--innodb-buffer-pool-size=80M',
|
||||||
|
'--character-set-server=utf8mb4',
|
||||||
|
'--collation-server=utf8mb4_general_ci',
|
||||||
|
'--default-time-zone=+8:00',
|
||||||
|
'--lower-case-table-names=1'
|
||||||
|
]
|
||||||
|
|
||||||
|
polaris-media:
|
||||||
|
image: polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-media:latest
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- media-net
|
||||||
|
ports:
|
||||||
|
- "10935:10935"
|
||||||
|
- "5540:5540"
|
||||||
|
- "6080:6080"
|
||||||
|
volumes:
|
||||||
|
- ./volumes/video:/opt/media/www/record/
|
||||||
|
- ./logs/media:/opt/media/log/
|
||||||
|
|
||||||
|
polaris-wvp:
|
||||||
|
image: polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-wvp:latest
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- media-net
|
||||||
|
ports:
|
||||||
|
- "18978:18978"
|
||||||
|
- "8116:8116/udp"
|
||||||
|
- "8116:8116/tcp"
|
||||||
depends_on:
|
depends_on:
|
||||||
- redis
|
- polaris-redis
|
||||||
|
- polaris-mysql
|
||||||
|
- polaris-media
|
||||||
|
links:
|
||||||
|
- polaris-redis
|
||||||
|
- polaris-mysql
|
||||||
|
- polaris-media
|
||||||
|
volumes:
|
||||||
|
- ./wvp/wvp/:/opt/wvp/wvp/
|
||||||
|
- ./logs/wvp:/opt/wvp/logs/
|
||||||
|
environment:
|
||||||
|
TZ: "Asia/Shanghai"
|
||||||
|
# 本机的IP
|
||||||
|
SIP_HOST: 127.0.0.1
|
||||||
|
STREAM_HOST: 127.0.0.1
|
||||||
|
ZLM_HOST: polaris-media
|
||||||
|
ZLM_PORT: 6080
|
||||||
|
ZLM_SERCERT: su6TiedN2rVAmBbIDX0aa0QTiBJLBdcf
|
||||||
|
REDIS_HOST: polaris-redis
|
||||||
|
REDIS_PORT: 6379
|
||||||
|
DATABASE_HOST: polaris-mysql
|
||||||
|
DATABASE_PORT: 3306
|
||||||
|
DATABASE_USER: wvp
|
||||||
|
DATABASE_PASSWORD: wvp
|
||||||
|
# 前端跨域配置,nginx容器所在物理机IP
|
||||||
|
NGINX_HOST: http://127.0.0.1:8080
|
||||||
|
|
||||||
|
polaris-nginx:
|
||||||
|
image: polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-nginx:latest
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
depends_on:
|
||||||
|
- polaris-wvp
|
||||||
|
links:
|
||||||
|
- polaris-wvp
|
||||||
|
environment:
|
||||||
|
WVP_HOST: polaris-wvp
|
||||||
|
WVP_PORT: 18978
|
||||||
|
volumes:
|
||||||
|
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||||
|
- ./logs/nginx:/var/log/nginx
|
||||||
|
networks:
|
||||||
|
- media-net
|
||||||
|
|
||||||
|
networks:
|
||||||
|
media-net:
|
||||||
|
driver: bridge
|
||||||
5
docker/docker-upgrade.sh
Executable file
5
docker/docker-upgrade.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
docker compose down
|
||||||
|
docker compose up -d --remove-orphans
|
||||||
91
docker/media/Dockerfile
Normal file
91
docker/media/Dockerfile
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
FROM ubuntu:20.04 AS build
|
||||||
|
|
||||||
|
#shell,rtmp,rtsp,rtsps,http,rtp
|
||||||
|
EXPOSE 10935/tcp
|
||||||
|
EXPOSE 5540/tcp
|
||||||
|
EXPOSE 6080/tcp
|
||||||
|
EXPOSE 10000/udp
|
||||||
|
EXPOSE 10000/tcp
|
||||||
|
EXPOSE 8000/udp
|
||||||
|
EXPOSE 8000/tcp
|
||||||
|
EXPOSE 9000/udp
|
||||||
|
|
||||||
|
# ADD sources.list /etc/apt/sources.list
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
DEBIAN_FRONTEND="noninteractive" \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
build-essential \
|
||||||
|
cmake \
|
||||||
|
git \
|
||||||
|
curl \
|
||||||
|
vim \
|
||||||
|
wget \
|
||||||
|
ca-certificates \
|
||||||
|
tzdata \
|
||||||
|
libssl-dev \
|
||||||
|
gcc \
|
||||||
|
g++ \
|
||||||
|
gdb && \
|
||||||
|
apt-get autoremove -y && \
|
||||||
|
apt-get clean -y && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN mkdir -p /opt/media
|
||||||
|
WORKDIR /opt/media
|
||||||
|
RUN git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit && \
|
||||||
|
cd ZLMediaKit && git submodule update --init
|
||||||
|
|
||||||
|
# 3rdpart init
|
||||||
|
WORKDIR /opt/media/ZLMediaKit/3rdpart
|
||||||
|
RUN wget https://polaris-tian-generic.pkg.coding.net/qt/dependencies/openssl-1.1.1k.tar.gz?version=latest -O openssl-1.1.1k.tar.gz && \
|
||||||
|
tar -xvzf openssl-1.1.1k.tar.gz && \
|
||||||
|
cd openssl-1.1.1k && ./config shared --openssldir=/usr/local/openssl --prefix=/usr/local/openssl && \
|
||||||
|
make && make install && \
|
||||||
|
echo "/usr/local/lib64/" >> /etc/ld.so.conf && \
|
||||||
|
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf && \
|
||||||
|
ldconfig && \
|
||||||
|
ln -s /usr/local/openssl/bin/openssl /usr/local/bin/openssl
|
||||||
|
|
||||||
|
WORKDIR /opt/media/ZLMediaKit/3rdpart
|
||||||
|
RUN wget https://github.com/cisco/libsrtp/archive/v2.3.0.tar.gz -O libsrtp-2.3.0.tar.gz && \
|
||||||
|
tar xfv libsrtp-2.3.0.tar.gz && \
|
||||||
|
mv libsrtp-2.3.0 libsrtp && \
|
||||||
|
cd libsrtp && ./configure --enable-openssl --with-openssl-dir=/usr/local/openssl && make -j $(nproc) && make install
|
||||||
|
|
||||||
|
|
||||||
|
WORKDIR /opt/media/ZLMediaKit/build
|
||||||
|
RUN cmake .. -DENABLE_WEBRTC=true -DOPENSSL_ROOT_DIR=/usr/local/openssl -DOPENSSL_LIBRARIES=/usr/local/openssl/lib && \
|
||||||
|
cmake --build . --target MediaServer
|
||||||
|
COPY config.ini /opt/media/ZLMediaKit/release/linux/Debug/
|
||||||
|
|
||||||
|
FROM ubuntu:20.04
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
DEBIAN_FRONTEND="noninteractive" \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
vim \
|
||||||
|
wget \
|
||||||
|
ca-certificates \
|
||||||
|
tzdata \
|
||||||
|
curl \
|
||||||
|
libssl-dev \
|
||||||
|
ffmpeg \
|
||||||
|
gcc \
|
||||||
|
g++ \
|
||||||
|
gdb && \
|
||||||
|
apt-get autoremove -y && \
|
||||||
|
apt-get clean -y && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
ENV TZ=Asia/Shanghai
|
||||||
|
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \
|
||||||
|
&& echo $TZ > /etc/timezone && \
|
||||||
|
mkdir -p /opt/media/bin/www
|
||||||
|
|
||||||
|
WORKDIR /opt/media/bin/
|
||||||
|
COPY --from=build /opt/media/ZLMediaKit/release/linux/Debug/MediaServer /opt/media/ZLMediaKit/default.pem /opt/media/bin/
|
||||||
|
COPY --from=build /opt/media/ZLMediaKit/release/linux/Debug/config.ini /opt/media/conf/
|
||||||
|
COPY --from=build /opt/media/ZLMediaKit/www/ /opt/media/bin/www/
|
||||||
|
ENV PATH /opt/media/bin:$PATH
|
||||||
|
CMD ["./MediaServer","-s", "default.pem", "-c", "../conf/config.ini", "-l","0"]
|
||||||
8
docker/media/build.sh
Executable file
8
docker/media/build.sh
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
version=2.7.3
|
||||||
|
|
||||||
|
docker build -t polaris-media:${version} .
|
||||||
|
docker tag polaris-media:${version} polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-media:${version}
|
||||||
|
docker tag polaris-media:${version} polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-media:latest
|
||||||
196
docker/media/config.ini
Normal file
196
docker/media/config.ini
Normal file
@ -0,0 +1,196 @@
|
|||||||
|
; auto-generated by mINI class {
|
||||||
|
|
||||||
|
[api]
|
||||||
|
apiDebug=1
|
||||||
|
defaultSnap=./www/logo.png
|
||||||
|
downloadRoot=./www;
|
||||||
|
secret=su6TiedN2rVAmBbIDX0aa0QTiBJLBdcf
|
||||||
|
snapRoot=./www/snap/
|
||||||
|
|
||||||
|
[cluster]
|
||||||
|
origin_url=
|
||||||
|
retry_count=3
|
||||||
|
timeout_sec=15
|
||||||
|
|
||||||
|
[ffmpeg]
|
||||||
|
bin=/usr/bin/ffmpeg
|
||||||
|
cmd=%s -re -i %s -c:a aac -strict -2 -ar 44100 -ab 48k -c:v libx264 -f flv %s
|
||||||
|
log=./ffmpeg/ffmpeg.log
|
||||||
|
restart_sec=0
|
||||||
|
snap=%s -rtsp_transport tcp -i %s -y -f mjpeg -frames:v 1 %s
|
||||||
|
|
||||||
|
[general]
|
||||||
|
broadcast_player_count_changed=0
|
||||||
|
check_nvidia_dev=1
|
||||||
|
enableVhost=0
|
||||||
|
enable_ffmpeg_log=0
|
||||||
|
flowThreshold=1024
|
||||||
|
listen_ip=::
|
||||||
|
maxStreamWaitMS=15000
|
||||||
|
mediaServerId=polaris
|
||||||
|
mergeWriteMS=0
|
||||||
|
resetWhenRePlay=1
|
||||||
|
streamNoneReaderDelayMS=20000
|
||||||
|
unready_frame_cache=100
|
||||||
|
wait_add_track_ms=3000
|
||||||
|
wait_audio_track_data_ms=1000
|
||||||
|
wait_track_ready_ms=10000
|
||||||
|
|
||||||
|
[hls]
|
||||||
|
broadcastRecordTs=0
|
||||||
|
deleteDelaySec=10
|
||||||
|
fastRegister=0
|
||||||
|
fileBufSize=65536
|
||||||
|
segDelay=0
|
||||||
|
segDur=2
|
||||||
|
segKeep=0
|
||||||
|
segNum=3
|
||||||
|
segRetain=5
|
||||||
|
|
||||||
|
[hook]
|
||||||
|
alive_interval=10.0
|
||||||
|
enable=1
|
||||||
|
on_flow_report=
|
||||||
|
on_http_access=
|
||||||
|
on_play=
|
||||||
|
on_publish=
|
||||||
|
on_record_mp4=
|
||||||
|
on_record_ts=
|
||||||
|
on_rtp_server_timeout=
|
||||||
|
on_rtsp_auth=
|
||||||
|
on_rtsp_realm=
|
||||||
|
on_send_rtp_stopped=
|
||||||
|
on_server_exited=
|
||||||
|
on_server_keepalive=
|
||||||
|
on_server_started=
|
||||||
|
on_shell_login=
|
||||||
|
on_stream_changed=
|
||||||
|
on_stream_none_reader=
|
||||||
|
on_stream_not_found=
|
||||||
|
retry=1
|
||||||
|
retry_delay=3.0
|
||||||
|
stream_changed_schemas=rtsp/rtmp/fmp4/ts/hls/hls.fmp4
|
||||||
|
timeoutSec=30
|
||||||
|
|
||||||
|
[http]
|
||||||
|
allow_cross_domains=1
|
||||||
|
allow_ip_range=
|
||||||
|
charSet=utf-8
|
||||||
|
dirMenu=1
|
||||||
|
forbidCacheSuffix=
|
||||||
|
forwarded_ip_header=
|
||||||
|
keepAliveSecond=30
|
||||||
|
maxReqSize=40960
|
||||||
|
notFound=<html><head><title>404 Not Found</title></head><body bgcolor="white"><center><h1>您访问的资源不存在!</h1></center><hr><center>ZLMediaKit(git hash:8ccb4e9/%aI,branch:master,build time:2024-11-07T10:34:19)</center></body></html>
|
||||||
|
port=6080
|
||||||
|
rootPath=./www
|
||||||
|
sendBufSize=65536
|
||||||
|
sslport=4443
|
||||||
|
virtualPath=
|
||||||
|
|
||||||
|
[multicast]
|
||||||
|
addrMax=239.255.255.255
|
||||||
|
addrMin=239.0.0.0
|
||||||
|
udpTTL=64
|
||||||
|
|
||||||
|
[protocol]
|
||||||
|
add_mute_audio=1
|
||||||
|
auto_close=0
|
||||||
|
continue_push_ms=3000
|
||||||
|
enable_audio=1
|
||||||
|
enable_fmp4=1
|
||||||
|
enable_hls=1
|
||||||
|
enable_hls_fmp4=0
|
||||||
|
enable_mp4=0
|
||||||
|
enable_rtmp=1
|
||||||
|
enable_rtsp=1
|
||||||
|
enable_ts=1
|
||||||
|
fmp4_demand=0
|
||||||
|
hls_demand=0
|
||||||
|
hls_save_path=./www
|
||||||
|
modify_stamp=2
|
||||||
|
mp4_as_player=0
|
||||||
|
mp4_max_second=3600
|
||||||
|
mp4_save_path=/home
|
||||||
|
paced_sender_ms=0
|
||||||
|
rtmp_demand=0
|
||||||
|
rtsp_demand=0
|
||||||
|
ts_demand=0
|
||||||
|
|
||||||
|
[record]
|
||||||
|
appName=record
|
||||||
|
enableFmp4=0
|
||||||
|
fastStart=0
|
||||||
|
fileBufSize=65536
|
||||||
|
fileRepeat=0
|
||||||
|
sampleMS=500
|
||||||
|
|
||||||
|
[rtc]
|
||||||
|
datachannel_echo=0
|
||||||
|
externIP=
|
||||||
|
maxRtpCacheMS=5000
|
||||||
|
maxRtpCacheSize=2048
|
||||||
|
max_bitrate=0
|
||||||
|
min_bitrate=0
|
||||||
|
nackIntervalRatio=1.0
|
||||||
|
nackMaxCount=15
|
||||||
|
nackMaxMS=3000
|
||||||
|
nackMaxSize=2048
|
||||||
|
nackRtpSize=8
|
||||||
|
port=8000
|
||||||
|
preferredCodecA=PCMA,PCMU,opus,mpeg4-generic
|
||||||
|
preferredCodecV=H264,H265,AV1,VP9,VP8
|
||||||
|
rembBitRate=0
|
||||||
|
start_bitrate=0
|
||||||
|
tcpPort=8000
|
||||||
|
timeoutSec=30
|
||||||
|
|
||||||
|
[rtmp]
|
||||||
|
directProxy=1
|
||||||
|
enhanced=0
|
||||||
|
handshakeSecond=15
|
||||||
|
keepAliveSecond=15
|
||||||
|
port=10935
|
||||||
|
sslport=0
|
||||||
|
|
||||||
|
[rtp]
|
||||||
|
audioMtuSize=600
|
||||||
|
h264_stap_a=1
|
||||||
|
lowLatency=0
|
||||||
|
rtpMaxSize=10
|
||||||
|
videoMtuSize=1400
|
||||||
|
|
||||||
|
[rtp_proxy]
|
||||||
|
dumpDir=
|
||||||
|
gop_cache=1
|
||||||
|
h264_pt=98
|
||||||
|
h265_pt=99
|
||||||
|
opus_pt=100
|
||||||
|
port=10000
|
||||||
|
port_range=30000-30500
|
||||||
|
ps_pt=96
|
||||||
|
rtp_g711_dur_ms=100
|
||||||
|
timeoutSec=15
|
||||||
|
udp_recv_socket_buffer=4194304
|
||||||
|
|
||||||
|
[rtsp]
|
||||||
|
authBasic=0
|
||||||
|
directProxy=1
|
||||||
|
handshakeSecond=15
|
||||||
|
keepAliveSecond=15
|
||||||
|
lowLatency=0
|
||||||
|
port=5540
|
||||||
|
rtpTransportType=-1
|
||||||
|
sslport=0
|
||||||
|
|
||||||
|
[shell]
|
||||||
|
maxReqSize=1024
|
||||||
|
port=0
|
||||||
|
|
||||||
|
[srt]
|
||||||
|
latencyMul=4
|
||||||
|
pktBufSize=8192
|
||||||
|
port=9000
|
||||||
|
timeoutSec=5
|
||||||
|
|
||||||
|
; } ---
|
||||||
3
docker/mysql/Dockerfile
Normal file
3
docker/mysql/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
FROM mysql:8.0.32
|
||||||
|
|
||||||
|
ADD ./db/*.sql /docker-entrypoint-initdb.d/
|
||||||
8
docker/mysql/build.sh
Executable file
8
docker/mysql/build.sh
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
version=2.7.3
|
||||||
|
|
||||||
|
docker build -t polaris-mysql:${version} .
|
||||||
|
docker tag polaris-mysql:${version} polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-mysql:${version}
|
||||||
|
docker tag polaris-mysql:${version} polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-mysql:latest
|
||||||
3
docker/mysql/db/privileges.sql
Normal file
3
docker/mysql/db/privileges.sql
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
use mysql;
|
||||||
|
grant all privileges on wvp.* to 'ylcx'@'%';
|
||||||
|
flush privileges;
|
||||||
769
docker/mysql/db/wvp.sql
Normal file
769
docker/mysql/db/wvp.sql
Normal file
@ -0,0 +1,769 @@
|
|||||||
|
/*建库*/
|
||||||
|
DROP DATABASE IF EXISTS `wvp`;
|
||||||
|
|
||||||
|
CREATE DATABASE `wvp` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
USE `wvp`;
|
||||||
|
|
||||||
|
/*建表*/
|
||||||
|
drop table IF EXISTS wvp_device;
|
||||||
|
create table IF NOT EXISTS wvp_device
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
device_id character varying(50) not null,
|
||||||
|
name character varying(255),
|
||||||
|
manufacturer character varying(255),
|
||||||
|
model character varying(255),
|
||||||
|
firmware character varying(255),
|
||||||
|
transport character varying(50),
|
||||||
|
stream_mode character varying(50),
|
||||||
|
on_line bool default false,
|
||||||
|
register_time character varying(50),
|
||||||
|
keepalive_time character varying(50),
|
||||||
|
ip character varying(50),
|
||||||
|
create_time character varying(50),
|
||||||
|
update_time character varying(50),
|
||||||
|
port integer,
|
||||||
|
expires integer,
|
||||||
|
subscribe_cycle_for_catalog integer DEFAULT 0,
|
||||||
|
subscribe_cycle_for_mobile_position integer DEFAULT 0,
|
||||||
|
mobile_position_submission_interval integer DEFAULT 5,
|
||||||
|
subscribe_cycle_for_alarm integer DEFAULT 0,
|
||||||
|
host_address character varying(50),
|
||||||
|
charset character varying(50),
|
||||||
|
ssrc_check bool default false,
|
||||||
|
geo_coord_sys character varying(50),
|
||||||
|
media_server_id character varying(50) default 'auto',
|
||||||
|
custom_name character varying(255),
|
||||||
|
sdp_ip character varying(50),
|
||||||
|
local_ip character varying(50),
|
||||||
|
password character varying(255),
|
||||||
|
as_message_channel bool default false,
|
||||||
|
heart_beat_interval integer,
|
||||||
|
heart_beat_count integer,
|
||||||
|
position_capability integer,
|
||||||
|
broadcast_push_after_ack bool default false,
|
||||||
|
server_id character varying(50),
|
||||||
|
constraint uk_device_device unique (device_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_device_alarm;
|
||||||
|
create table IF NOT EXISTS wvp_device_alarm
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
device_id character varying(50) not null,
|
||||||
|
channel_id character varying(50) not null,
|
||||||
|
alarm_priority character varying(50),
|
||||||
|
alarm_method character varying(50),
|
||||||
|
alarm_time character varying(50),
|
||||||
|
alarm_description character varying(255),
|
||||||
|
longitude double precision,
|
||||||
|
latitude double precision,
|
||||||
|
alarm_type character varying(50),
|
||||||
|
create_time character varying(50) not null
|
||||||
|
);
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_device_mobile_position;
|
||||||
|
create table IF NOT EXISTS wvp_device_mobile_position
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
device_id character varying(50) not null,
|
||||||
|
channel_id character varying(50) not null,
|
||||||
|
device_name character varying(255),
|
||||||
|
time character varying(50),
|
||||||
|
longitude double precision,
|
||||||
|
latitude double precision,
|
||||||
|
altitude double precision,
|
||||||
|
speed double precision,
|
||||||
|
direction double precision,
|
||||||
|
report_source character varying(50),
|
||||||
|
create_time character varying(50)
|
||||||
|
);
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_device_channel;
|
||||||
|
create table IF NOT EXISTS wvp_device_channel
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
device_id character varying(50),
|
||||||
|
name character varying(255),
|
||||||
|
manufacturer character varying(50),
|
||||||
|
model character varying(50),
|
||||||
|
owner character varying(50),
|
||||||
|
civil_code character varying(50),
|
||||||
|
block character varying(50),
|
||||||
|
address character varying(50),
|
||||||
|
parental integer,
|
||||||
|
parent_id character varying(50),
|
||||||
|
safety_way integer,
|
||||||
|
register_way integer,
|
||||||
|
cert_num character varying(50),
|
||||||
|
certifiable integer,
|
||||||
|
err_code integer,
|
||||||
|
end_time character varying(50),
|
||||||
|
secrecy integer,
|
||||||
|
ip_address character varying(50),
|
||||||
|
port integer,
|
||||||
|
password character varying(255),
|
||||||
|
status character varying(50),
|
||||||
|
longitude double precision,
|
||||||
|
latitude double precision,
|
||||||
|
ptz_type integer,
|
||||||
|
position_type integer,
|
||||||
|
room_type integer,
|
||||||
|
use_type integer,
|
||||||
|
supply_light_type integer,
|
||||||
|
direction_type integer,
|
||||||
|
resolution character varying(255),
|
||||||
|
business_group_id character varying(255),
|
||||||
|
download_speed character varying(255),
|
||||||
|
svc_space_support_mod integer,
|
||||||
|
svc_time_support_mode integer,
|
||||||
|
create_time character varying(50) not null,
|
||||||
|
update_time character varying(50) not null,
|
||||||
|
sub_count integer,
|
||||||
|
stream_id character varying(255),
|
||||||
|
has_audio bool default false,
|
||||||
|
gps_time character varying(50),
|
||||||
|
stream_identification character varying(50),
|
||||||
|
channel_type int default 0 not null,
|
||||||
|
gb_device_id character varying(50),
|
||||||
|
gb_name character varying(255),
|
||||||
|
gb_manufacturer character varying(255),
|
||||||
|
gb_model character varying(255),
|
||||||
|
gb_owner character varying(255),
|
||||||
|
gb_civil_code character varying(255),
|
||||||
|
gb_block character varying(255),
|
||||||
|
gb_address character varying(255),
|
||||||
|
gb_parental integer,
|
||||||
|
gb_parent_id character varying(255),
|
||||||
|
gb_safety_way integer,
|
||||||
|
gb_register_way integer,
|
||||||
|
gb_cert_num character varying(50),
|
||||||
|
gb_certifiable integer,
|
||||||
|
gb_err_code integer,
|
||||||
|
gb_end_time character varying(50),
|
||||||
|
gb_secrecy integer,
|
||||||
|
gb_ip_address character varying(50),
|
||||||
|
gb_port integer,
|
||||||
|
gb_password character varying(50),
|
||||||
|
gb_status character varying(50),
|
||||||
|
gb_longitude double,
|
||||||
|
gb_latitude double,
|
||||||
|
gb_business_group_id character varying(50),
|
||||||
|
gb_ptz_type integer,
|
||||||
|
gb_position_type integer,
|
||||||
|
gb_room_type integer,
|
||||||
|
gb_use_type integer,
|
||||||
|
gb_supply_light_type integer,
|
||||||
|
gb_direction_type integer,
|
||||||
|
gb_resolution character varying(255),
|
||||||
|
gb_download_speed character varying(255),
|
||||||
|
gb_svc_space_support_mod integer,
|
||||||
|
gb_svc_time_support_mode integer,
|
||||||
|
record_plan_id integer,
|
||||||
|
data_type integer not null,
|
||||||
|
data_device_id integer not null,
|
||||||
|
gps_speed double precision,
|
||||||
|
gps_altitude double precision,
|
||||||
|
gps_direction double precision,
|
||||||
|
index (data_type),
|
||||||
|
index (data_device_id),
|
||||||
|
constraint uk_wvp_unique_channel unique (gb_device_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_media_server;
|
||||||
|
create table IF NOT EXISTS wvp_media_server
|
||||||
|
(
|
||||||
|
id character varying(255) primary key,
|
||||||
|
ip character varying(50),
|
||||||
|
hook_ip character varying(50),
|
||||||
|
sdp_ip character varying(50),
|
||||||
|
stream_ip character varying(50),
|
||||||
|
http_port integer,
|
||||||
|
http_ssl_port integer,
|
||||||
|
rtmp_port integer,
|
||||||
|
rtmp_ssl_port integer,
|
||||||
|
rtp_proxy_port integer,
|
||||||
|
rtsp_port integer,
|
||||||
|
rtsp_ssl_port integer,
|
||||||
|
flv_port integer,
|
||||||
|
flv_ssl_port integer,
|
||||||
|
ws_flv_port integer,
|
||||||
|
ws_flv_ssl_port integer,
|
||||||
|
auto_config bool default false,
|
||||||
|
secret character varying(50),
|
||||||
|
type character varying(50) default 'zlm',
|
||||||
|
rtp_enable bool default false,
|
||||||
|
rtp_port_range character varying(50),
|
||||||
|
send_rtp_port_range character varying(50),
|
||||||
|
record_assist_port integer,
|
||||||
|
default_server bool default false,
|
||||||
|
create_time character varying(50),
|
||||||
|
update_time character varying(50),
|
||||||
|
hook_alive_interval integer,
|
||||||
|
record_path character varying(255),
|
||||||
|
record_day integer default 7,
|
||||||
|
transcode_suffix character varying(255),
|
||||||
|
server_id character varying(50),
|
||||||
|
constraint uk_media_server_unique_ip_http_port unique (ip, http_port, server_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_platform;
|
||||||
|
create table IF NOT EXISTS wvp_platform
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
enable bool default false,
|
||||||
|
name character varying(255),
|
||||||
|
server_gb_id character varying(50),
|
||||||
|
server_gb_domain character varying(50),
|
||||||
|
server_ip character varying(50),
|
||||||
|
server_port integer,
|
||||||
|
device_gb_id character varying(50),
|
||||||
|
device_ip character varying(50),
|
||||||
|
device_port character varying(50),
|
||||||
|
username character varying(255),
|
||||||
|
password character varying(50),
|
||||||
|
expires character varying(50),
|
||||||
|
keep_timeout character varying(50),
|
||||||
|
transport character varying(50),
|
||||||
|
civil_code character varying(50),
|
||||||
|
manufacturer character varying(255),
|
||||||
|
model character varying(255),
|
||||||
|
address character varying(255),
|
||||||
|
character_set character varying(50),
|
||||||
|
ptz bool default false,
|
||||||
|
rtcp bool default false,
|
||||||
|
status bool default false,
|
||||||
|
catalog_group integer,
|
||||||
|
register_way integer,
|
||||||
|
secrecy integer,
|
||||||
|
create_time character varying(50),
|
||||||
|
update_time character varying(50),
|
||||||
|
as_message_channel bool default false,
|
||||||
|
catalog_with_platform integer default 1,
|
||||||
|
catalog_with_group integer default 1,
|
||||||
|
catalog_with_region integer default 1,
|
||||||
|
auto_push_channel bool default true,
|
||||||
|
send_stream_ip character varying(50),
|
||||||
|
server_id character varying(50),
|
||||||
|
constraint uk_platform_unique_server_gb_id unique (server_gb_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_platform_channel;
|
||||||
|
create table IF NOT EXISTS wvp_platform_channel
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
platform_id integer,
|
||||||
|
device_channel_id integer,
|
||||||
|
custom_device_id character varying(50),
|
||||||
|
custom_name character varying(255),
|
||||||
|
custom_manufacturer character varying(50),
|
||||||
|
custom_model character varying(50),
|
||||||
|
custom_owner character varying(50),
|
||||||
|
custom_civil_code character varying(50),
|
||||||
|
custom_block character varying(50),
|
||||||
|
custom_address character varying(50),
|
||||||
|
custom_parental integer,
|
||||||
|
custom_parent_id character varying(50),
|
||||||
|
custom_safety_way integer,
|
||||||
|
custom_register_way integer,
|
||||||
|
custom_cert_num character varying(50),
|
||||||
|
custom_certifiable integer,
|
||||||
|
custom_err_code integer,
|
||||||
|
custom_end_time character varying(50),
|
||||||
|
custom_secrecy integer,
|
||||||
|
custom_ip_address character varying(50),
|
||||||
|
custom_port integer,
|
||||||
|
custom_password character varying(255),
|
||||||
|
custom_status character varying(50),
|
||||||
|
custom_longitude double precision,
|
||||||
|
custom_latitude double precision,
|
||||||
|
custom_ptz_type integer,
|
||||||
|
custom_position_type integer,
|
||||||
|
custom_room_type integer,
|
||||||
|
custom_use_type integer,
|
||||||
|
custom_supply_light_type integer,
|
||||||
|
custom_direction_type integer,
|
||||||
|
custom_resolution character varying(255),
|
||||||
|
custom_business_group_id character varying(255),
|
||||||
|
custom_download_speed character varying(255),
|
||||||
|
custom_svc_space_support_mod integer,
|
||||||
|
custom_svc_time_support_mode integer,
|
||||||
|
constraint uk_platform_gb_channel_platform_id_catalog_id_device_channel_id unique (platform_id, device_channel_id),
|
||||||
|
constraint uk_platform_gb_channel_device_id unique (custom_device_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_platform_group;
|
||||||
|
create table IF NOT EXISTS wvp_platform_group
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
platform_id integer,
|
||||||
|
group_id integer,
|
||||||
|
constraint uk_wvp_platform_group_platform_id_group_id unique (platform_id, group_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_platform_region;
|
||||||
|
create table IF NOT EXISTS wvp_platform_region
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
platform_id integer,
|
||||||
|
region_id integer,
|
||||||
|
constraint uk_wvp_platform_region_platform_id_group_id unique (platform_id, region_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_stream_proxy;
|
||||||
|
create table IF NOT EXISTS wvp_stream_proxy
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
type character varying(50),
|
||||||
|
app character varying(255),
|
||||||
|
stream character varying(255),
|
||||||
|
src_url character varying(255),
|
||||||
|
timeout integer,
|
||||||
|
ffmpeg_cmd_key character varying(255),
|
||||||
|
rtsp_type character varying(50),
|
||||||
|
media_server_id character varying(50),
|
||||||
|
enable_audio bool default false,
|
||||||
|
enable_mp4 bool default false,
|
||||||
|
pulling bool default false,
|
||||||
|
enable bool default false,
|
||||||
|
enable_remove_none_reader bool default false,
|
||||||
|
create_time character varying(50),
|
||||||
|
name character varying(255),
|
||||||
|
update_time character varying(50),
|
||||||
|
stream_key character varying(255),
|
||||||
|
server_id character varying(50),
|
||||||
|
enable_disable_none_reader bool default false,
|
||||||
|
relates_media_server_id character varying(50),
|
||||||
|
constraint uk_stream_proxy_app_stream unique (app, stream)
|
||||||
|
);
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_stream_push;
|
||||||
|
create table IF NOT EXISTS wvp_stream_push
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
app character varying(255),
|
||||||
|
stream character varying(255),
|
||||||
|
create_time character varying(50),
|
||||||
|
media_server_id character varying(50),
|
||||||
|
server_id character varying(50),
|
||||||
|
push_time character varying(50),
|
||||||
|
status bool default false,
|
||||||
|
update_time character varying(50),
|
||||||
|
pushing bool default false,
|
||||||
|
self bool default false,
|
||||||
|
start_offline_push bool default true,
|
||||||
|
constraint uk_stream_push_app_stream unique (app, stream)
|
||||||
|
);
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_cloud_record;
|
||||||
|
create table IF NOT EXISTS wvp_cloud_record
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
app character varying(255),
|
||||||
|
stream character varying(255),
|
||||||
|
call_id character varying(255),
|
||||||
|
start_time bigint,
|
||||||
|
end_time bigint,
|
||||||
|
media_server_id character varying(50),
|
||||||
|
server_id character varying(50),
|
||||||
|
file_name character varying(255),
|
||||||
|
folder character varying(500),
|
||||||
|
file_path character varying(500),
|
||||||
|
collect bool default false,
|
||||||
|
file_size bigint,
|
||||||
|
time_len bigint
|
||||||
|
);
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_user;
|
||||||
|
create table IF NOT EXISTS wvp_user
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
username character varying(255),
|
||||||
|
password character varying(255),
|
||||||
|
role_id integer,
|
||||||
|
create_time character varying(50),
|
||||||
|
update_time character varying(50),
|
||||||
|
push_key character varying(50),
|
||||||
|
constraint uk_user_username unique (username)
|
||||||
|
);
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_user_role;
|
||||||
|
create table IF NOT EXISTS wvp_user_role
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
name character varying(50),
|
||||||
|
authority character varying(50),
|
||||||
|
create_time character varying(50),
|
||||||
|
update_time character varying(50)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_user_api_key;
|
||||||
|
create table IF NOT EXISTS wvp_user_api_key
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
user_id bigint,
|
||||||
|
app character varying(255),
|
||||||
|
api_key text,
|
||||||
|
expired_at bigint,
|
||||||
|
remark character varying(255),
|
||||||
|
enable bool default true,
|
||||||
|
create_time character varying(50),
|
||||||
|
update_time character varying(50)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/*初始数据*/
|
||||||
|
INSERT INTO wvp_user
|
||||||
|
VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 1, '2021-04-13 14:14:57', '2021-04-13 14:14:57',
|
||||||
|
'3e80d1762a324d5b0ff636e0bd16f1e3');
|
||||||
|
INSERT INTO wvp_user_role
|
||||||
|
VALUES (1, 'admin', '0', '2021-04-13 14:14:57', '2021-04-13 14:14:57');
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_common_group;
|
||||||
|
create table IF NOT EXISTS wvp_common_group
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
device_id varchar(50) NOT NULL,
|
||||||
|
name varchar(255) NOT NULL,
|
||||||
|
parent_id int,
|
||||||
|
parent_device_id varchar(50) DEFAULT NULL,
|
||||||
|
business_group varchar(50) NOT NULL,
|
||||||
|
create_time varchar(50) NOT NULL,
|
||||||
|
update_time varchar(50) NOT NULL,
|
||||||
|
civil_code varchar(50) default null,
|
||||||
|
constraint uk_common_group_device_platform unique (device_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_common_region;
|
||||||
|
create table IF NOT EXISTS wvp_common_region
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
device_id varchar(50) NOT NULL,
|
||||||
|
name varchar(255) NOT NULL,
|
||||||
|
parent_id int,
|
||||||
|
parent_device_id varchar(50) DEFAULT NULL,
|
||||||
|
create_time varchar(50) NOT NULL,
|
||||||
|
update_time varchar(50) NOT NULL,
|
||||||
|
constraint uk_common_region_device_id unique (device_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_record_plan;
|
||||||
|
create table IF NOT EXISTS wvp_record_plan
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
snap bool default false,
|
||||||
|
name varchar(255) NOT NULL,
|
||||||
|
create_time character varying(50),
|
||||||
|
update_time character varying(50)
|
||||||
|
);
|
||||||
|
|
||||||
|
drop table IF EXISTS wvp_record_plan_item;
|
||||||
|
create table IF NOT EXISTS wvp_record_plan_item
|
||||||
|
(
|
||||||
|
id serial primary key,
|
||||||
|
start int,
|
||||||
|
stop int,
|
||||||
|
week_day int,
|
||||||
|
plan_id int,
|
||||||
|
create_time character varying(50),
|
||||||
|
update_time character varying(50)
|
||||||
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 20240528
|
||||||
|
*/
|
||||||
|
DELIMITER // -- 重定义分隔符避免分号冲突
|
||||||
|
CREATE PROCEDURE `wvp_20240528`()
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_media_server' and column_name = 'transcode_suffix')
|
||||||
|
THEN
|
||||||
|
ALTER TABLE wvp_media_server ADD transcode_suffix character varying(255);
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF not EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_media_server' and column_name = 'type')
|
||||||
|
THEN
|
||||||
|
alter table wvp_media_server
|
||||||
|
add type character varying(50) default 'zlm';
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF not EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_media_server' and column_name = 'flv_port')
|
||||||
|
THEN
|
||||||
|
alter table wvp_media_server add flv_port integer;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF not EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_media_server' and column_name = 'flv_ssl_port')
|
||||||
|
THEN
|
||||||
|
alter table wvp_media_server add flv_ssl_port integer;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF not EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_media_server' and column_name = 'ws_flv_port')
|
||||||
|
THEN
|
||||||
|
alter table wvp_media_server add ws_flv_port integer;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF not EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_media_server' and column_name = 'ws_flv_ssl_port')
|
||||||
|
THEN
|
||||||
|
alter table wvp_media_server add ws_flv_ssl_port integer;
|
||||||
|
END IF;
|
||||||
|
END; //
|
||||||
|
call wvp_20240528();
|
||||||
|
DROP PROCEDURE wvp_20240528;
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
create table IF NOT EXISTS wvp_user_api_key (
|
||||||
|
id serial primary key ,
|
||||||
|
user_id bigint,
|
||||||
|
app character varying(255) ,
|
||||||
|
api_key text,
|
||||||
|
expired_at bigint,
|
||||||
|
remark character varying(255),
|
||||||
|
enable bool default true,
|
||||||
|
create_time character varying(50),
|
||||||
|
update_time character varying(50)
|
||||||
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 20241222
|
||||||
|
*/
|
||||||
|
DELIMITER // -- 重定义分隔符避免分号冲突
|
||||||
|
CREATE PROCEDURE `wvp_20241222`()
|
||||||
|
BEGIN
|
||||||
|
IF EXISTS (SELECT column_name FROM information_schema.STATISTICS
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_channel' and INDEX_NAME = 'uk_wvp_device_channel_unique_device_channel')
|
||||||
|
THEN
|
||||||
|
alter table wvp_device_channel drop index uk_wvp_device_channel_unique_device_channel;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF EXISTS (SELECT column_name FROM information_schema.STATISTICS
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_channel' and INDEX_NAME = 'uk_wvp_unique_stream_push_id')
|
||||||
|
THEN
|
||||||
|
alter table wvp_device_channel drop index uk_wvp_unique_stream_push_id;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF EXISTS (SELECT column_name FROM information_schema.STATISTICS
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_channel' and INDEX_NAME = 'uk_wvp_unique_stream_proxy_id')
|
||||||
|
THEN
|
||||||
|
alter table wvp_device_channel drop index uk_wvp_unique_stream_proxy_id;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF not EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_channel' and column_name = 'data_type')
|
||||||
|
THEN
|
||||||
|
alter table wvp_device_channel add data_type integer not null;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF not EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_channel' and column_name = 'data_device_id')
|
||||||
|
THEN
|
||||||
|
alter table wvp_device_channel add data_device_id integer not null;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_channel' and column_name = 'device_db_id')
|
||||||
|
THEN
|
||||||
|
update wvp_device_channel wdc INNER JOIN
|
||||||
|
(SELECT id, device_db_id from wvp_device_channel where device_db_id is not null ) ct on ct.id = wdc.id
|
||||||
|
set wdc.data_type = 1, wdc.data_device_id = ct.device_db_id where wdc.device_db_id is not null;
|
||||||
|
alter table wvp_device_channel drop device_db_id;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_channel' and column_name = 'stream_push_id')
|
||||||
|
THEN
|
||||||
|
update wvp_device_channel wdc INNER JOIN
|
||||||
|
(SELECT id, stream_push_id from wvp_device_channel where stream_push_id is not null ) ct on ct.id = wdc.id
|
||||||
|
set wdc.data_type = 2, wdc.data_device_id = ct.stream_push_id where wdc.stream_push_id is not null;
|
||||||
|
alter table wvp_device_channel drop stream_push_id;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_channel' and column_name = 'stream_proxy_id')
|
||||||
|
THEN
|
||||||
|
update wvp_device_channel wdc INNER JOIN
|
||||||
|
(SELECT id, stream_proxy_id from wvp_device_channel where stream_proxy_id is not null ) ct on ct.id = wdc.id
|
||||||
|
set wdc.data_type = 3, wdc.data_device_id = ct.stream_proxy_id where wdc.stream_proxy_id is not null;
|
||||||
|
alter table wvp_device_channel drop stream_proxy_id;
|
||||||
|
END IF;
|
||||||
|
END; //
|
||||||
|
call wvp_20241222();
|
||||||
|
DROP PROCEDURE wvp_20241222;
|
||||||
|
DELIMITER ;
|
||||||
|
/*
|
||||||
|
* 20241231
|
||||||
|
*/
|
||||||
|
DELIMITER //
|
||||||
|
CREATE PROCEDURE `wvp_20241231`()
|
||||||
|
BEGIN
|
||||||
|
IF not EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_stream_proxy' and column_name = 'relates_media_server_id')
|
||||||
|
THEN
|
||||||
|
alter table wvp_stream_proxy add relates_media_server_id character varying(50);
|
||||||
|
END IF;
|
||||||
|
END; //
|
||||||
|
call wvp_20241231();
|
||||||
|
DROP PROCEDURE wvp_20241231;
|
||||||
|
DELIMITER ;
|
||||||
|
/*
|
||||||
|
* 20250111
|
||||||
|
*/
|
||||||
|
DELIMITER // -- 重定义分隔符避免分号冲突
|
||||||
|
CREATE PROCEDURE `wvp_20250111`()
|
||||||
|
BEGIN
|
||||||
|
IF EXISTS (SELECT column_name FROM information_schema.STATISTICS
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_cloud_record' and INDEX_NAME = 'uk_stream_push_app_stream_path')
|
||||||
|
THEN
|
||||||
|
alter table wvp_cloud_record drop index uk_stream_push_app_stream_path ;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_cloud_record' and column_name = 'folder')
|
||||||
|
THEN
|
||||||
|
alter table wvp_cloud_record modify folder varchar(500) null;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_cloud_record' and column_name = 'file_path')
|
||||||
|
THEN
|
||||||
|
alter table wvp_cloud_record modify file_path varchar(500) null;
|
||||||
|
END IF;
|
||||||
|
END; //
|
||||||
|
call wvp_20250111();
|
||||||
|
DROP PROCEDURE wvp_20250111;
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 20250211
|
||||||
|
*/
|
||||||
|
DELIMITER // -- 重定义分隔符避免分号冲突
|
||||||
|
CREATE PROCEDURE `wvp_20250211`()
|
||||||
|
BEGIN
|
||||||
|
IF EXISTS (SELECT column_name FROM information_schema.STATISTICS
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device' and column_name = 'keepalive_interval_time')
|
||||||
|
THEN
|
||||||
|
alter table wvp_device change keepalive_interval_time heart_beat_interval integer after as_message_channel;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF not EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device' and column_name = 'heart_beat_count')
|
||||||
|
THEN
|
||||||
|
alter table wvp_device add heart_beat_count integer;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF not EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device' and column_name = 'position_capability')
|
||||||
|
THEN
|
||||||
|
alter table wvp_device add position_capability integer;
|
||||||
|
END IF;
|
||||||
|
END; //
|
||||||
|
call wvp_20250211();
|
||||||
|
DROP PROCEDURE wvp_20250211;
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 20250312
|
||||||
|
*/
|
||||||
|
DELIMITER // -- 重定义分隔符避免分号冲突
|
||||||
|
CREATE PROCEDURE `wvp_20250312`()
|
||||||
|
BEGIN
|
||||||
|
DECLARE serverId VARCHAR(32) DEFAULT '你的服务ID';
|
||||||
|
IF not EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device' and column_name = 'server_id')
|
||||||
|
THEN
|
||||||
|
alter table wvp_device add server_id character varying(50);
|
||||||
|
update wvp_device set server_id = serverId;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF not EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_media_server' and column_name = 'server_id')
|
||||||
|
THEN
|
||||||
|
alter table wvp_media_server add server_id character varying(50);
|
||||||
|
update wvp_media_server set server_id = serverId;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF not EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_stream_proxy' and column_name = 'server_id')
|
||||||
|
THEN
|
||||||
|
alter table wvp_stream_proxy add server_id character varying(50);
|
||||||
|
update wvp_stream_proxy set server_id = serverId;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF not EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_cloud_record' and column_name = 'server_id')
|
||||||
|
THEN
|
||||||
|
alter table wvp_cloud_record add server_id character varying(50);
|
||||||
|
update wvp_cloud_record set server_id = serverId;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF not EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_platform' and column_name = 'server_id')
|
||||||
|
THEN
|
||||||
|
alter table wvp_platform add server_id character varying(50);
|
||||||
|
END IF;
|
||||||
|
END; //
|
||||||
|
call wvp_20250312();
|
||||||
|
DROP PROCEDURE wvp_20250312;
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 20250319
|
||||||
|
*/
|
||||||
|
DELIMITER // -- 重定义分隔符避免分号冲突
|
||||||
|
CREATE PROCEDURE `wvp_20250319`()
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_channel' and column_name = 'gps_speed')
|
||||||
|
THEN
|
||||||
|
alter table wvp_device_channel add gps_speed double precision;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_channel' and column_name = 'gps_altitude')
|
||||||
|
THEN
|
||||||
|
alter table wvp_device_channel add gps_altitude double precision;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT column_name FROM information_schema.columns
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_channel' and column_name = 'gps_direction')
|
||||||
|
THEN
|
||||||
|
alter table wvp_device_channel add gps_direction double precision;
|
||||||
|
END IF;
|
||||||
|
END; //
|
||||||
|
call wvp_20250319();
|
||||||
|
DROP PROCEDURE wvp_20250319;
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 20250402
|
||||||
|
*/
|
||||||
|
DELIMITER // -- 重定义分隔符避免分号冲突
|
||||||
|
CREATE PROCEDURE `wvp_20250402`()
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS (SELECT column_name FROM information_schema.STATISTICS
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_channel' and INDEX_NAME = 'data_type')
|
||||||
|
THEN
|
||||||
|
create index data_type on wvp_device_channel (data_type);
|
||||||
|
END IF;
|
||||||
|
IF NOT EXISTS (SELECT column_name FROM information_schema.STATISTICS
|
||||||
|
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_channel' and INDEX_NAME = 'data_device_id')
|
||||||
|
THEN
|
||||||
|
create index data_device_id on wvp_device_channel (data_device_id);
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
END; //
|
||||||
|
call wvp_20250402();
|
||||||
|
DROP PROCEDURE wvp_20250402;
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
19
docker/nginx/Dockerfile
Normal file
19
docker/nginx/Dockerfile
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
FROM nginx:alpine
|
||||||
|
|
||||||
|
RUN apk add --no-cache bash
|
||||||
|
|
||||||
|
ARG TZ=Asia/Shanghai
|
||||||
|
RUN \
|
||||||
|
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
|
||||||
|
apk update && \
|
||||||
|
apk add tzdata
|
||||||
|
RUN ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime && \
|
||||||
|
echo '${TZ}' > /etc/timezone
|
||||||
|
|
||||||
|
RUN rm -rf /etc/nginx/conf.d/*
|
||||||
|
RUN mkdir /opt/dist
|
||||||
|
COPY ./dist /opt/dist
|
||||||
|
COPY ./conf/nginx.conf /etc/nginx/conf.d
|
||||||
|
|
||||||
|
CMD ["nginx","-g","daemon off;"]
|
||||||
|
|
||||||
11
docker/nginx/build.sh
Executable file
11
docker/nginx/build.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
version=2.7.3
|
||||||
|
|
||||||
|
rm ./dist/static/js/config.js
|
||||||
|
cp ./config.js ./dist/static/js/
|
||||||
|
|
||||||
|
docker build -t polaris-nginx:${version} .
|
||||||
|
docker tag polaris-nginx:${version} polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-nginx:${version}
|
||||||
|
docker tag polaris-nginx:${version} polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-nginx:latest
|
||||||
55
docker/nginx/conf/nginx.conf
Normal file
55
docker/nginx/conf/nginx.conf
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
#user nobody;
|
||||||
|
worker_processes 1;
|
||||||
|
|
||||||
|
#error_log logs/error.log;
|
||||||
|
#error_log logs/error.log notice;
|
||||||
|
#error_log logs/error.log info;
|
||||||
|
|
||||||
|
#pid logs/nginx.pid;
|
||||||
|
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
http {
|
||||||
|
include mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
sendfile on;
|
||||||
|
#tcp_nopush on;
|
||||||
|
|
||||||
|
#keepalive_timeout 0;
|
||||||
|
keepalive_timeout 65;
|
||||||
|
|
||||||
|
#gzip on;
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 8080;
|
||||||
|
server_name localhost;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /opt/dist;
|
||||||
|
index index.html index.htm;
|
||||||
|
}
|
||||||
|
location /record_proxy/{
|
||||||
|
proxy_set_header Host $http_host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header REMOTE-HOST $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_pass http://polaris-wvp:18978/;
|
||||||
|
}
|
||||||
|
location /api/ {
|
||||||
|
proxy_set_header Host $http_host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header REMOTE-HOST $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_pass http://polaris-wvp:18978;
|
||||||
|
}
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
location = /50x.html {
|
||||||
|
root html;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
22
docker/nginx/config.js
Normal file
22
docker/nginx/config.js
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
window.baseUrl = "http://10.10.1.124:18978"
|
||||||
|
|
||||||
|
// map组件全局参数, 注释此内容可以关闭地图功能
|
||||||
|
window.mapParam = {
|
||||||
|
// 开启/关闭地图功能
|
||||||
|
enable: true,
|
||||||
|
// 坐标系 GCJ-02 WGS-84,
|
||||||
|
coordinateSystem: "GCJ-02",
|
||||||
|
// 地图瓦片地址
|
||||||
|
tilesUrl: "http://webrd0{1-4}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8",
|
||||||
|
// 瓦片大小
|
||||||
|
tileSize: 256,
|
||||||
|
// 默认层级
|
||||||
|
zoom:10,
|
||||||
|
// 默认地图中心点
|
||||||
|
center:[116.41020, 39.915119],
|
||||||
|
// 地图最大层级
|
||||||
|
maxZoom:18,
|
||||||
|
// 地图最小层级
|
||||||
|
minZoom: 3
|
||||||
|
}
|
||||||
15
docker/push.sh
Executable file
15
docker/push.sh
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
version=2.7.3
|
||||||
|
|
||||||
|
docker push polaris-tian-docker.pkg.coding.net/qt/polaris/ylcx-media:latest
|
||||||
|
docker push polaris-tian-docker.pkg.coding.net/qt/polaris/ylcx-mysql:latest
|
||||||
|
docker push polaris-tian-docker.pkg.coding.net/qt/polaris/ylcx-redis:latest
|
||||||
|
docker push polaris-tian-docker.pkg.coding.net/qt/polaris/ylcx-wvp:latest
|
||||||
|
docker push polaris-tian-docker.pkg.coding.net/qt/polaris/ylcx-nginx:latest
|
||||||
|
docker push polaris-tian-docker.pkg.coding.net/qt/polaris/ylcx-media:${version}
|
||||||
|
docker push polaris-tian-docker.pkg.coding.net/qt/polaris/ylcx-mysql:${version}
|
||||||
|
docker push polaris-tian-docker.pkg.coding.net/qt/polaris/ylcx-redis:${version}
|
||||||
|
docker push polaris-tian-docker.pkg.coding.net/qt/polaris/ylcx-wvp:${version}
|
||||||
|
docker push polaris-tian-docker.pkg.coding.net/qt/polaris/ylcx-nginx:${version}
|
||||||
5
docker/redis/Dockerfile
Normal file
5
docker/redis/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
FROM redis
|
||||||
|
|
||||||
|
RUN mkdir -p /opt/polaris/redis
|
||||||
|
WORKDIR /opt/polaris/redis
|
||||||
|
COPY ./conf/redis.conf /opt/polaris/redis/redis.conf
|
||||||
8
docker/redis/build.sh
Executable file
8
docker/redis/build.sh
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
version=2.7.3
|
||||||
|
|
||||||
|
docker build -t polaris-redis:${version} .
|
||||||
|
docker tag polaris-redis:${version} polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-redis:${version}
|
||||||
|
docker tag polaris-redis:${version} polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-redis:latest
|
||||||
2
docker/redis/conf/redis.conf
Normal file
2
docker/redis/conf/redis.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#requirepass root
|
||||||
|
bind 0.0.0.0
|
||||||
@ -1,2 +0,0 @@
|
|||||||
requirepass root
|
|
||||||
bind 0.0.0.0
|
|
||||||
@ -1,81 +1,64 @@
|
|||||||
FROM ubuntu:20.04 as build
|
FROM ubuntu:20.04 AS build
|
||||||
|
ARG Platfrom=amd64
|
||||||
|
ARG JDK_NAME
|
||||||
|
|
||||||
ARG gitUrl="https://gitee.com/pan648540858"
|
EXPOSE 18978/tcp
|
||||||
ARG zlmGitUrl="https://gitee.com/xia-chu/ZLMediaKit"
|
EXPOSE 8116/tcp
|
||||||
|
EXPOSE 8116/udp
|
||||||
|
EXPOSE 8080/tcp
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive &&\
|
RUN apt-get update && \
|
||||||
apt-get update && \
|
DEBIAN_FRONTEND="noninteractive" \
|
||||||
apt-get install -y --no-install-recommends openjdk-11-jre git maven nodejs npm build-essential \
|
apt-get install -y --no-install-recommends \
|
||||||
cmake ca-certificates openssl ffmpeg &&\
|
wget \
|
||||||
mkdir -p /opt/wvp/config /opt/wvp/heapdump /opt/wvp/config /opt/assist/config /opt/assist/heapdump /opt/media/www/record
|
cmake \
|
||||||
|
maven \
|
||||||
|
git \
|
||||||
|
ca-certificates \
|
||||||
|
tzdata \
|
||||||
|
curl \
|
||||||
|
libpcre3 \
|
||||||
|
libpcre3-dev \
|
||||||
|
zlib1g-dev \
|
||||||
|
openssl \
|
||||||
|
libssl-dev \
|
||||||
|
gdb && \
|
||||||
|
apt-get autoremove -y && \
|
||||||
|
apt-get clean -y && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
RUN cd /home && \
|
# install jdk1.8
|
||||||
git clone "${gitUrl}/maven.git" && \
|
RUN mkdir -p /opt/download
|
||||||
cp maven/settings.xml /usr/share/maven/conf/
|
WORKDIR /opt/download
|
||||||
|
RUN if [ "$Platfrom" = "arm64" ]; \
|
||||||
|
then \
|
||||||
|
wget https://polaris-tian-generic.pkg.coding.net/qt/autopliot/jdk-8u411-linux-aarch64.tar.gz?version=latest --no-check-certificate -O jdk-8.tar.gz && \
|
||||||
|
tar -zxvf /opt/download/jdk-8.tar.gz -C /usr/local/ --transform 's/jdk1.8.0_411/java/' && \
|
||||||
|
rm /opt/download/jdk-8.tar.gz; \
|
||||||
|
else \
|
||||||
|
wget https://polaris-tian-generic.pkg.coding.net/qt/autopliot/jdk-8u202-linux-x64.tar.gz?version=latest --no-check-certificate -O jdk-8.tar.gz && \
|
||||||
|
tar -zxvf /opt/download/jdk-8.tar.gz -C /usr/local/ --transform 's/jdk1.8.0_202/java/' && \
|
||||||
|
rm /opt/download/jdk-8.tar.gz; \
|
||||||
|
fi
|
||||||
|
|
||||||
RUN cd /home && \
|
ENV JAVA_HOME /usr/local/java/
|
||||||
git clone "${gitUrl}/wvp-GB28181-pro.git"
|
ENV JRE_HOME ${JAVA_HOME}/jre
|
||||||
RUN cd /home/wvp-GB28181-pro/web_src && \
|
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
|
||||||
npm install && \
|
ENV PATH ${JAVA_HOME}/bin:$PATH
|
||||||
npm run build
|
|
||||||
RUN cd /home/wvp-GB28181-pro && \
|
|
||||||
mvn clean package -Dmaven.test.skip=true && \
|
|
||||||
cp /home/wvp-GB28181-pro/target/*.jar /opt/wvp/ && \
|
|
||||||
cp /home/wvp-GB28181-pro/src/main/resources/application-docker.yml /opt/wvp/config/application.yml
|
|
||||||
|
|
||||||
RUN cd /home && \
|
RUN java -version && javac -version
|
||||||
git clone "${gitUrl}/wvp-pro-assist.git"
|
|
||||||
RUN cd /home/wvp-pro-assist && \
|
|
||||||
git reset --hard 58f1a79136a55a7cd1593c95b56ddadcc2225b61 && \
|
|
||||||
mvn clean package -Dmaven.test.skip=true && \
|
|
||||||
cp /home/wvp-pro-assist/target/*.jar /opt/assist/ && \
|
|
||||||
cp /home/wvp-pro-assist/src/main/resources/application-dev.yml /opt/assist/config/application.yml
|
|
||||||
|
|
||||||
RUN cd /home && \
|
RUN mkdir -p /opt/wvp
|
||||||
git clone --depth=1 "${zlmGitUrl}"
|
|
||||||
RUN cd /home/ZLMediaKit && \
|
|
||||||
git submodule update --init --recursive && \
|
|
||||||
mkdir -p build release/linux/Release/ &&\
|
|
||||||
cd build && \
|
|
||||||
cmake -DCMAKE_BUILD_TYPE=Release .. && \
|
|
||||||
make -j4 && \
|
|
||||||
rm -rf ../release/linux/Release/config.ini && \
|
|
||||||
cp -r ../release/linux/Release/* /opt/media
|
|
||||||
|
|
||||||
RUN cd /opt/wvp && \
|
|
||||||
echo '#!/bin/bash' > run.sh && \
|
|
||||||
echo 'echo ${WVP_IP}' >> run.sh && \
|
|
||||||
echo 'echo ${WVP_CONFIG}' >> run.sh && \
|
|
||||||
echo 'cd /opt/assist' >> run.sh && \
|
|
||||||
echo 'nohup java ${ASSIST_JVM_CONFIG} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/assist/heapdump/ -jar *.jar --spring.config.location=/opt/assist/config/application.yml --userSettings.record=/opt/media/www/record/ --media.record-assist-port=18081 ${ASSIST_CONFIG} &' >> run.sh && \
|
|
||||||
echo 'nohup /opt/media/MediaServer -d -m 3 &' >> run.sh && \
|
|
||||||
echo 'cd /opt/wvp' >> run.sh && \
|
|
||||||
echo 'java ${WVP_JVM_CONFIG} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/wvp/heapdump/ -jar *.jar --spring.config.location=/opt/wvp/config/application.yml --media.record-assist-port=18081 ${WVP_CONFIG}' >> run.sh && \
|
|
||||||
chmod +x run.sh
|
|
||||||
|
|
||||||
FROM ubuntu:20.04
|
|
||||||
|
|
||||||
EXPOSE 18080/tcp
|
|
||||||
EXPOSE 5060/tcp
|
|
||||||
EXPOSE 5060/udp
|
|
||||||
EXPOSE 6379/tcp
|
|
||||||
EXPOSE 18081/tcp
|
|
||||||
EXPOSE 80/tcp
|
|
||||||
EXPOSE 1935/tcp
|
|
||||||
EXPOSE 554/tcp
|
|
||||||
EXPOSE 554/udp
|
|
||||||
EXPOSE 30000-30500/tcp
|
|
||||||
EXPOSE 30000-30500/udp
|
|
||||||
|
|
||||||
ENV LC_ALL zh_CN.UTF-8
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive &&\
|
|
||||||
apt-get update && \
|
|
||||||
apt-get install -y --no-install-recommends openjdk-11-jre ca-certificates ffmpeg language-pack-zh-hans && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get clean -y && \
|
|
||||||
rm -rf /var/lib/apt/lists/*dic
|
|
||||||
|
|
||||||
COPY --from=build /opt /opt
|
|
||||||
WORKDIR /opt/wvp
|
WORKDIR /opt/wvp
|
||||||
CMD ["sh", "run.sh"]
|
COPY ./wvp /opt/wvp
|
||||||
|
|
||||||
|
WORKDIR /home
|
||||||
|
RUN cd /home && \
|
||||||
|
git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git
|
||||||
|
|
||||||
|
RUN cd /home/wvp-GB28181-pro && \
|
||||||
|
mvn clean package -Dmaven.test.skip=true && \
|
||||||
|
cp /home/wvp-GB28181-pro/target/*.jar /opt/wvp/wvp.jar
|
||||||
|
|
||||||
|
WORKDIR /opt/wvp
|
||||||
|
ENTRYPOINT ["java", "-Xms512m", "-Xmx1024m", "-XX:+HeapDumpOnOutOfMemoryError", "-XX:HeapDumpPath=/opt/ylcx/", "-jar", "wvp.jar", "--spring.config.location=/opt/ylcx/wvp/application.yml"]
|
||||||
8
docker/wvp/build.sh
Executable file
8
docker/wvp/build.sh
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
version=2.7.3
|
||||||
|
|
||||||
|
docker build -t polaris-wvp:${version} .
|
||||||
|
docker tag polaris-wvp:${version} polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-wvp:${version}
|
||||||
|
docker tag polaris-wvp:${version} polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-wvp:latest
|
||||||
105
docker/wvp/wvp/application-base.yml
Executable file
105
docker/wvp/wvp/application-base.yml
Executable file
@ -0,0 +1,105 @@
|
|||||||
|
spring:
|
||||||
|
# 设置接口超时时间
|
||||||
|
mvc:
|
||||||
|
async:
|
||||||
|
request-timeout: 20000
|
||||||
|
thymeleaf:
|
||||||
|
cache: false
|
||||||
|
# [可选]上传文件大小限制
|
||||||
|
servlet:
|
||||||
|
multipart:
|
||||||
|
max-file-size: 10MB
|
||||||
|
max-request-size: 100MB
|
||||||
|
# REDIS数据库配置
|
||||||
|
redis:
|
||||||
|
# [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1
|
||||||
|
host: 127.0.0.1
|
||||||
|
# [必须修改] 端口号
|
||||||
|
port: 6379
|
||||||
|
# [可选] 数据库 DB
|
||||||
|
database: 1
|
||||||
|
# [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接
|
||||||
|
password:
|
||||||
|
# [可选] 超时时间
|
||||||
|
timeout: 30000
|
||||||
|
# mysql数据源
|
||||||
|
datasource:
|
||||||
|
dynamic:
|
||||||
|
type: com.zaxxer.hikari.HikariDataSource
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
url: jdbc:mysql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true
|
||||||
|
username: root
|
||||||
|
password: root
|
||||||
|
#[可选] 监听的HTTP端口, 网页和接口调用都是这个端口
|
||||||
|
server:
|
||||||
|
port: 18978
|
||||||
|
ssl:
|
||||||
|
# [可选] 是否开启HTTPS访问
|
||||||
|
enabled: false
|
||||||
|
# 作为28181服务器的配置
|
||||||
|
sip:
|
||||||
|
# [必须修改] 本机的IP
|
||||||
|
ip: 127.0.0.1
|
||||||
|
# [可选]
|
||||||
|
port: 8116
|
||||||
|
# [可选]
|
||||||
|
domain: 3402000000
|
||||||
|
# [可选]
|
||||||
|
id: 34020000002000000001
|
||||||
|
password:
|
||||||
|
alarm: true
|
||||||
|
|
||||||
|
# 默认服务器配置
|
||||||
|
media:
|
||||||
|
id: polaris
|
||||||
|
# [必须修改]内网IP
|
||||||
|
ip: 127.0.0.1
|
||||||
|
http-port: 6080
|
||||||
|
# [可选] 返回流地址时的ip,置空使用 media.ip
|
||||||
|
stream-ip: 127.0.0.1
|
||||||
|
# [可选] wvp在国标信令中使用的ip,此ip为摄像机可以访问到的ip, 置空使用 media.ip
|
||||||
|
sdp-ip: 127.0.0.1
|
||||||
|
# [可选] Hook IP, 默认使用sip.ip
|
||||||
|
hook-ip: 127.0.0.1
|
||||||
|
# [可选] sslport
|
||||||
|
http-ssl-port: 4443
|
||||||
|
rtp-proxy-port: 10000
|
||||||
|
rtmp-port: 10935
|
||||||
|
rtmp-ssl-port: 41935
|
||||||
|
rtsp-port: 5540
|
||||||
|
rtsp-ssl-port: 45540
|
||||||
|
# [可选]
|
||||||
|
secret: su6TiedN2rVAmBbIDX0aa0QTiBJLBdcf
|
||||||
|
# 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
|
||||||
|
rtp:
|
||||||
|
# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
|
||||||
|
enable: false
|
||||||
|
# [可选]
|
||||||
|
port-range: 30000,30500
|
||||||
|
# [可选]
|
||||||
|
send-port-range: 50502,50506
|
||||||
|
|
||||||
|
record-path: /opt/media/record
|
||||||
|
record-day: 7
|
||||||
|
record-assist-port: 0
|
||||||
|
user-settings:
|
||||||
|
auto-apply-play: true
|
||||||
|
play-timeout: 30000
|
||||||
|
wait-track: false
|
||||||
|
record-push-live: false
|
||||||
|
record-sip: false
|
||||||
|
stream-on-demand: true
|
||||||
|
interface-authentication: false
|
||||||
|
broadcast-for-platform: TCP-PASSIVE
|
||||||
|
push-stream-after-ack: true
|
||||||
|
send-to-platforms-when-id-lost: true
|
||||||
|
interface-authentication-excludes:
|
||||||
|
- /api/**
|
||||||
|
push-authority: false
|
||||||
|
allowed-origins:
|
||||||
|
- http://localhost:8080
|
||||||
|
- http://127.0.0.1:8080
|
||||||
|
- http://0.0.0.0:8080
|
||||||
|
logging:
|
||||||
|
config: classpath:logback-spring.xml
|
||||||
|
|
||||||
106
docker/wvp/wvp/application-docker.yml
Normal file
106
docker/wvp/wvp/application-docker.yml
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
spring:
|
||||||
|
# 设置接口超时时间
|
||||||
|
mvc:
|
||||||
|
async:
|
||||||
|
request-timeout: 20000
|
||||||
|
thymeleaf:
|
||||||
|
cache: false
|
||||||
|
# [可选]上传文件大小限制
|
||||||
|
servlet:
|
||||||
|
multipart:
|
||||||
|
max-file-size: 10MB
|
||||||
|
max-request-size: 100MB
|
||||||
|
# REDIS数据库配置
|
||||||
|
redis:
|
||||||
|
# [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1
|
||||||
|
host: ${REDIS_HOST:127.0.0.1}
|
||||||
|
# [必须修改] 端口号
|
||||||
|
port: ${REDIS_PORT:6379}
|
||||||
|
# [可选] 数据库 DB
|
||||||
|
database: 1
|
||||||
|
# [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接
|
||||||
|
password:
|
||||||
|
# [可选] 超时时间
|
||||||
|
timeout: 30000
|
||||||
|
# mysql数据源
|
||||||
|
datasource:
|
||||||
|
type: com.zaxxer.hikari.HikariDataSource
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
url: jdbc:mysql://${DATABASE_HOST:127.0.0.1}:${DATABASE_PORT:3306}/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
|
||||||
|
username: ${DATABASE_USER:root}
|
||||||
|
password: ${DATABASE_PASSWORD:root}
|
||||||
|
|
||||||
|
#[可选] 监听的HTTP端口, 网页和接口调用都是这个端口
|
||||||
|
server:
|
||||||
|
port: 18978
|
||||||
|
ssl:
|
||||||
|
# [可选] 是否开启HTTPS访问
|
||||||
|
enabled: false
|
||||||
|
# 作为28181服务器的配置
|
||||||
|
sip:
|
||||||
|
# [必须修改] 本机的IP
|
||||||
|
ip: ${SIP_HOST:127.0.0.1}
|
||||||
|
# [可选]
|
||||||
|
port: 8116
|
||||||
|
# [可选]
|
||||||
|
domain: 3402000000
|
||||||
|
# [可选]
|
||||||
|
id: 34020000002000000001
|
||||||
|
password:
|
||||||
|
alarm: true
|
||||||
|
|
||||||
|
# 默认服务器配置
|
||||||
|
media:
|
||||||
|
id: polaris
|
||||||
|
# [必须修改] ZLM 内网IP与端口
|
||||||
|
ip: ${ZLM_HOST:127.0.0.1}
|
||||||
|
http-port: ${ZLM_PORT:6080}
|
||||||
|
# [可选] 返回流地址时的ip,置空使用 media.ip
|
||||||
|
stream-ip: ${STREAM_HOST:127.0.0.1}
|
||||||
|
# [可选] wvp在国标信令中使用的ip,此ip为摄像机可以访问到的ip, 置空使用 media.ip
|
||||||
|
sdp-ip: ${SIP_HOST:127.0.0.1}
|
||||||
|
# [可选] Hook IP, 默认使用sip.ip
|
||||||
|
hook-ip: ${SIP_HOST:127.0.0.1}
|
||||||
|
# [可选] sslport
|
||||||
|
http-ssl-port: 4443
|
||||||
|
rtp-proxy-port: 10000
|
||||||
|
rtmp-port: 10935
|
||||||
|
rtmp-ssl-port: 41935
|
||||||
|
rtsp-port: 5540
|
||||||
|
rtsp-ssl-port: 45540
|
||||||
|
# [可选]
|
||||||
|
secret: ${ZLM_SERCERT}
|
||||||
|
# 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
|
||||||
|
rtp:
|
||||||
|
# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
|
||||||
|
enable: false
|
||||||
|
# [可选]
|
||||||
|
port-range: 30000,30500
|
||||||
|
# [可选]
|
||||||
|
send-port-range: 50502,50506
|
||||||
|
|
||||||
|
record-path: /opt/media/record
|
||||||
|
record-day: 7
|
||||||
|
record-assist-port: 0
|
||||||
|
user-settings:
|
||||||
|
auto-apply-play: true
|
||||||
|
play-timeout: 30000
|
||||||
|
wait-track: false
|
||||||
|
record-push-live: false
|
||||||
|
record-sip: false
|
||||||
|
stream-on-demand: true
|
||||||
|
interface-authentication: false
|
||||||
|
broadcast-for-platform: TCP-PASSIVE
|
||||||
|
push-stream-after-ack: true
|
||||||
|
send-to-platforms-when-id-lost: true
|
||||||
|
interface-authentication-excludes:
|
||||||
|
- /api/**
|
||||||
|
push-authority: false
|
||||||
|
allowed-origins:
|
||||||
|
- http://localhost:8080
|
||||||
|
- http://127.0.0.1:8080
|
||||||
|
- http://0.0.0.0:8080
|
||||||
|
- ${NGINX_HOST}
|
||||||
|
logging:
|
||||||
|
config: classpath:logback-spring.xml
|
||||||
|
|
||||||
5
docker/wvp/wvp/application.yml
Executable file
5
docker/wvp/wvp/application.yml
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: wvp
|
||||||
|
profiles:
|
||||||
|
active: docker
|
||||||
Loading…
Reference in New Issue
Block a user