mirror of
https://gitee.com/pan648540858/wvp-GB28181-pro.git
synced 2025-09-26 21:15:56 +08:00
实现docker的开箱即用
This commit is contained in:
1
.dockerignore
Normal file
1
.dockerignore
Normal file
@@ -0,0 +1 @@
|
||||
docker/volumes
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -28,3 +28,5 @@ hs_err_pid*
|
||||
|
||||
/src/main/resources/static/
|
||||
certificates
|
||||
/.vs
|
||||
/docker/volumes
|
||||
|
@@ -1,7 +1,7 @@
|
||||
version: '3'
|
||||
services:
|
||||
polaris-redis:
|
||||
image: polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-redis:latest
|
||||
image: redis:latest # 使用官方Redis镜像
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ]
|
||||
@@ -11,8 +11,8 @@ services:
|
||||
start_period: 10s
|
||||
networks:
|
||||
- media-net
|
||||
ports:
|
||||
- 6379:6379
|
||||
# ports:
|
||||
# - 6379:6379
|
||||
volumes:
|
||||
- ./redis/conf/redis.conf:/opt/polaris/redis/redis.conf
|
||||
- ./volumes/redis/data/:/data
|
||||
@@ -21,7 +21,7 @@ services:
|
||||
command: redis-server /opt/polaris/redis/redis.conf --appendonly yes
|
||||
|
||||
polaris-mysql:
|
||||
image: polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-mysql:latest
|
||||
image: mysql:8 # 使用官方MySQL 8镜像
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/3306" ]
|
||||
@@ -34,18 +34,18 @@ services:
|
||||
environment:
|
||||
MYSQL_DATABASE: wvp
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
MYSQL_USER: root
|
||||
MYSQL_PASSWORD: root
|
||||
MYSQL_USER: wvp_user
|
||||
MYSQL_PASSWORD: wvp_password
|
||||
TZ: Asia/Shanghai
|
||||
ports:
|
||||
- 3306:3306
|
||||
# ports:
|
||||
# - 3306:3306
|
||||
volumes:
|
||||
- ./mysql/conf:/etc/mysql/conf.d
|
||||
- ./logs/mysql:/logs
|
||||
- ./volumes/mysql/data:/var/lib/mysql
|
||||
- ../数据库/2.7.4/初始化-mysql-2.7.4.sql:/docker-entrypoint-initdb.d/init.sql # 初始化SQL脚本目录
|
||||
command: [
|
||||
'mysqld',
|
||||
'--default-authentication-plugin=mysql_native_password',
|
||||
# '--default-authentication-plugin=mysql_native_password',
|
||||
'--innodb-buffer-pool-size=80M',
|
||||
'--character-set-server=utf8mb4',
|
||||
'--collation-server=utf8mb4_general_ci',
|
||||
@@ -54,7 +54,7 @@ services:
|
||||
]
|
||||
|
||||
polaris-media:
|
||||
image: polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-media:latest
|
||||
image: zlmediakit/zlmediakit:master # 替换为官方镜像
|
||||
restart: always
|
||||
networks:
|
||||
- media-net
|
||||
@@ -65,9 +65,18 @@ services:
|
||||
volumes:
|
||||
- ./volumes/video:/opt/media/www/record/
|
||||
- ./logs/media:/opt/media/log/
|
||||
- ./media/config.ini:/conf/config.ini
|
||||
command: [
|
||||
'MediaServer',
|
||||
'-c', '/conf/config.ini',
|
||||
'-l', '0'
|
||||
]
|
||||
|
||||
polaris-wvp:
|
||||
image: polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-wvp:latest
|
||||
# 显式指定构建上下文和Dockerfile路径
|
||||
build:
|
||||
context: .. # 构建上下文的根路径
|
||||
dockerfile: ./docker/wvp/Dockerfile # 相对于上下文路径的Dockerfile位置
|
||||
restart: always
|
||||
networks:
|
||||
- media-net
|
||||
@@ -84,7 +93,7 @@ services:
|
||||
- polaris-mysql
|
||||
- polaris-media
|
||||
volumes:
|
||||
- ./wvp/wvp/:/opt/wvp/wvp/
|
||||
- ./wvp/wvp/:/opt/ylcx/wvp/
|
||||
- ./logs/wvp:/opt/wvp/logs/
|
||||
environment:
|
||||
TZ: "Asia/Shanghai"
|
||||
@@ -98,13 +107,16 @@ services:
|
||||
REDIS_PORT: 6379
|
||||
DATABASE_HOST: polaris-mysql
|
||||
DATABASE_PORT: 3306
|
||||
DATABASE_USER: wvp
|
||||
DATABASE_PASSWORD: wvp
|
||||
DATABASE_USER: wvp_user
|
||||
DATABASE_PASSWORD: wvp_password
|
||||
# 前端跨域配置,nginx容器所在物理机IP
|
||||
NGINX_HOST: http://127.0.0.1:8080
|
||||
|
||||
polaris-nginx:
|
||||
image: polaris-tian-docker.pkg.coding.net/qt/polaris/polaris-nginx:latest
|
||||
# 显式指定构建上下文和Dockerfile路径
|
||||
build:
|
||||
context: .. # 构建上下文的根路径
|
||||
dockerfile: ./docker/nginx/Dockerfile # 相对于上下文路径的Dockerfile位置
|
||||
ports:
|
||||
- "8080:8080"
|
||||
depends_on:
|
||||
|
@@ -52,21 +52,21 @@ alive_interval=10.0
|
||||
enable=1
|
||||
on_flow_report=
|
||||
on_http_access=
|
||||
on_play=
|
||||
on_publish=
|
||||
on_record_mp4=
|
||||
on_play=http://127.0.0.1:18978/index/hook/on_play
|
||||
on_publish=http://127.0.0.1:18978/index/hook/on_publish
|
||||
on_record_mp4=http://127.0.0.1:18978/index/hook/on_record_mp4
|
||||
on_record_ts=
|
||||
on_rtp_server_timeout=
|
||||
on_rtp_server_timeout=http://127.0.0.1:18978/index/hook/on_rtp_server_timeout
|
||||
on_rtsp_auth=
|
||||
on_rtsp_realm=
|
||||
on_send_rtp_stopped=
|
||||
on_send_rtp_stopped=http://127.0.0.1:18978/index/hook/on_send_rtp_stopped
|
||||
on_server_exited=
|
||||
on_server_keepalive=
|
||||
on_server_started=
|
||||
on_server_keepalive=http://127.0.0.1:18978/index/hook/on_server_keepalive
|
||||
on_server_started=http://127.0.0.1:18978/index/hook/on_server_started
|
||||
on_shell_login=
|
||||
on_stream_changed=
|
||||
on_stream_none_reader=
|
||||
on_stream_not_found=
|
||||
on_stream_changed=http://127.0.0.1:18978/index/hook/on_stream_changed
|
||||
on_stream_none_reader=http://127.0.0.1:18978/index/hook/on_stream_none_reader
|
||||
on_stream_not_found=http://127.0.0.1:18978/index/hook/on_stream_not_found
|
||||
retry=1
|
||||
retry_delay=3.0
|
||||
stream_changed_schemas=rtsp/rtmp/fmp4/ts/hls/hls.fmp4
|
||||
@@ -111,7 +111,7 @@ hls_save_path=./www
|
||||
modify_stamp=2
|
||||
mp4_as_player=0
|
||||
mp4_max_second=3600
|
||||
mp4_save_path=/home
|
||||
mp4_save_path=/opt/media
|
||||
paced_sender_ms=0
|
||||
rtmp_demand=0
|
||||
rtsp_demand=0
|
||||
@@ -126,6 +126,7 @@ fileRepeat=0
|
||||
sampleMS=500
|
||||
|
||||
[rtc]
|
||||
bfilter=0
|
||||
datachannel_echo=0
|
||||
externIP=
|
||||
maxRtpCacheMS=5000
|
||||
@@ -165,6 +166,7 @@ dumpDir=
|
||||
gop_cache=1
|
||||
h264_pt=98
|
||||
h265_pt=99
|
||||
merge_frame=1
|
||||
opus_pt=100
|
||||
port=10000
|
||||
port_range=30000-30500
|
||||
@@ -189,6 +191,7 @@ port=0
|
||||
|
||||
[srt]
|
||||
latencyMul=4
|
||||
passPhrase=
|
||||
pktBufSize=8192
|
||||
port=9000
|
||||
timeoutSec=5
|
||||
|
@@ -1,19 +1,28 @@
|
||||
FROM ubuntu:24.04 AS builder
|
||||
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y nodejs npm && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY ./web /build
|
||||
WORKDIR /build
|
||||
|
||||
RUN npm --registry=https://registry.npmmirror.com install
|
||||
RUN npm run build:prod
|
||||
|
||||
WORKDIR /src/main/resources
|
||||
RUN ls
|
||||
|
||||
WORKDIR /src/main/resources/static
|
||||
RUN ls
|
||||
|
||||
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
|
||||
|
||||
COPY --from=builder /src/main/resources/static /opt/dist
|
||||
|
||||
CMD ["nginx","-g","daemon off;"]
|
||||
|
||||
|
@@ -1,64 +1,84 @@
|
||||
FROM ubuntu:20.04 AS build
|
||||
ARG Platfrom=amd64
|
||||
ARG JDK_NAME
|
||||
FROM ringcentral/jdk:11 AS builder
|
||||
|
||||
EXPOSE 18978/tcp
|
||||
EXPOSE 8116/tcp
|
||||
EXPOSE 8116/udp
|
||||
EXPOSE 8080/tcp
|
||||
|
||||
RUN apt-get update && \
|
||||
DEBIAN_FRONTEND="noninteractive" \
|
||||
apt-get install -y --no-install-recommends \
|
||||
wget \
|
||||
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 apt-get update && \
|
||||
#DEBIAN_FRONTEND="noninteractive" \
|
||||
#apt-get install -y --no-install-recommends \
|
||||
#wget \
|
||||
#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/*
|
||||
|
||||
# install jdk1.8
|
||||
RUN mkdir -p /opt/download
|
||||
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
|
||||
## install jdk1.8
|
||||
#RUN mkdir -p /opt/download
|
||||
#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
|
||||
|
||||
ENV JAVA_HOME /usr/local/java/
|
||||
ENV JRE_HOME ${JAVA_HOME}/jre
|
||||
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
|
||||
ENV PATH ${JAVA_HOME}/bin:$PATH
|
||||
#ENV JAVA_HOME /usr/local/java/
|
||||
#ENV JRE_HOME ${JAVA_HOME}/jre
|
||||
#ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
|
||||
#ENV PATH ${JAVA_HOME}/bin:$PATH
|
||||
|
||||
RUN java -version && javac -version
|
||||
|
||||
#RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources && \
|
||||
RUN apt-get update && \
|
||||
apt-get install -y maven && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
COPY . /build
|
||||
WORKDIR /build
|
||||
RUN ls && mvn clean package -Dmaven.test.skip=true
|
||||
WORKDIR /build/target
|
||||
RUN mv wvp-pro-*.jar wvp.jar
|
||||
|
||||
|
||||
FROM ringcentral/jdk:11
|
||||
RUN mkdir -p /opt/wvp
|
||||
WORKDIR /opt/wvp
|
||||
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
|
||||
COPY --from=builder /build/target /opt/wvp
|
||||
COPY ./docker/wvp/wvp /opt/wvp
|
||||
ENTRYPOINT ["java", "-Xms512m", "-Xmx1024m", "-XX:+HeapDumpOnOutOfMemoryError", "-XX:HeapDumpPath=/opt/ylcx/", "-jar", "wvp.jar", "--spring.config.location=/opt/ylcx/wvp/application.yml"]
|
||||
|
||||
|
||||
|
||||
#RUN mkdir -p /opt/wvp
|
||||
#WORKDIR /opt/wvp
|
||||
#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"]
|
Reference in New Issue
Block a user