Browse Source

尝试docker-compose启动

pull/212/head
xiaoxie 3 years ago
parent
commit
460bd4f9aa
  1. 26
      docker/assist/Dockerfile
  2. 34
      docker/docker-compose.yml
  3. 90
      docker/wvp/Dockerfile
  4. 63
      docker/zlm/Dockerfile
  5. 97
      src/main/resources/application-docker.yml

26
docker/assist/Dockerfile

@ -1,26 +0,0 @@
FROM openjdk:11-jre-buster AS build
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
DEBIAN_FRONTEND="noninteractive" && \
apt-get install -y --no-install-recommends git maven && \
cd /home && \
git clone https://gitee.com/18010473990/maven.git && \
cp maven/settings.xml /usr/share/maven/conf/ && \
git clone https://gitee.com/xieyu1989/wvp-pro-assist.git &&\
cd /home/wvp-pro-assist
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-docker.yml /opt/assist/conf/application.yml
FROM ubuntu:20.04
ARG DEBIAN_FRONTEND=noninteractive
EXPOSE 18081/tcp
RUN apt-get update && \
DEBIAN_FRONTEND="noninteractive" && \
apt-get install -y --no-install-recommends openjdk-11-jre-headless ca-certificates ffmpeg && \
apt-get autoremove -y && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*dic
COPY --from=build /opt /opt
WORKDIR /opt/wvp
CMD ["java", "-jar","*.jar","--spring.config.location=/opt/assist/conf/application.yml"]

34
docker/docker-compose.yml

@ -9,37 +9,23 @@ services:
environment: environment:
TZ: "Asia/Shanghai" TZ: "Asia/Shanghai"
command: redis-server /etc/redis/redis_default.conf --appendonly yes command: redis-server /etc/redis/redis_default.conf --appendonly yes
zlm:
image: panjjo/zlmediakit
restart: always
volumes:
- ../video:/home/lin/server/ZLMediaKit/release/linux/Debug/www/record/
ports:
- "80:80"
- "10000:10000/tcp"
- "10000:10000/udp"
- "30000-30500:30000-30500/tcp"
- "30000-30500:30000-30500/udp"
environment:
TZ: "Asia/Shanghai"
assist:
build:
context: ./assist
restart: always
volumes:
- ./conf:/opt/assist/conf
- ../video:/home/lin/server/ZLMediaKit/release/linux/Debug/www/record/
environment:
TZ: "Asia/Shanghai"
wvp: wvp:
build: build:
context: ./wvp context: ./wvp
restart: always restart: always
volumes:
- ./conf:/opt/wvp/conf
ports: ports:
- "5060:5060" - "5060:5060"
- "5060:5060/udp" - "5060:5060/udp"
- "18080:18080" - "18080:18080"
- "80:80"
- "10000:10000/tcp"
- "10000:10000/udp"
- "30000-30500:30000-30500/tcp"
- "30000-30500:30000-30500/udp"
volumes:
- ./video:/opt/media/www/record/
environment: environment:
TZ: "Asia/Shanghai" TZ: "Asia/Shanghai"
WVP_HOST: 172.18.0.61
depends_on:
- redis

90
docker/wvp/Dockerfile

@ -1,24 +1,74 @@
FROM ubuntu:20.04 AS build FROM ubuntu:20.04 AS build
RUN apt-get update && \
DEBIAN_FRONTEND="noninteractive" && \ RUN export DEBIAN_FRONTEND=noninteractive &&\
apt-get install -y --no-install-recommends openjdk-11-jre-headless git maven nodejs npm &&\ apt-get update && \
cd /home &&\ apt-get install -y --no-install-recommends openjdk-11-jre git maven nodejs npm build-essential \
git clone https://gitee.com/18010473990/maven.git && \ cmake ca-certificates openssl ffmpeg && \
cp maven/settings.xml /usr/share/maven/conf/ && \
git clone https://gitee.com/xieyu1989/wvp-GB28181.git && \ cd /home && \
cd /home/wvp-GB28181/web_src && \ git clone https://gitee.com/18010473990/maven.git && \
npm install && \ cp maven/settings.xml /usr/share/maven/conf/ && \
npm run build && \ git clone https://gitee.com/18010473990/wvp-GB28181.git && \
mkdir -p /opt/wvp/config && \ git clone https://gitee.com/18010473990/wvp-pro-assist.git && \
cd /home/wvp-GB28181 && \ git clone --depth=1 https://gitee.com/xia-chu/ZLMediaKit && \
mvn clean package -Dmaven.test.skip=true && \ mkdir -p /opt/wvp/config /opt/assist/config /opt/media/www/record && \
cp src/main/resources/application-docker.yml /opt/wvp/conf/application.yml && \
cp target/wvp*.jar /opt/wvp/ cd /home/wvp-GB28181/web_src && \
npm install && \
FROM openjdk:11-jre-buster npm run build && \
cd /home/wvp-GB28181 && \
mvn clean package -Dmaven.test.skip=true && \
cp /home/wvp-GB28181/target/*.jar /opt/wvp/ && \
cp /home/wvp-GB28181/src/main/resources/application-dev.yml /opt/wvp/config/application.yml && \
cd /home/wvp-pro-assist && \
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 && \
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 && \
cd /opt/wvp && \
echo '#!/bin/bash' > run.sh && \
echo 'echo ${WVP_IP}' >> run.sh && \
echo 'echo ${WVP_CONFIG}' >> run.sh && \
echo 'redis-server --daemonize yes --bind 0.0.0.0' >> run.sh && \
echo 'cd /opt/assist' >> run.sh && \
echo 'nohup java -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 -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 18080/tcp
EXPOSE 5060:5060/tcp EXPOSE 5060/tcp
EXPOSE 5060:5060/udp 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
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 COPY --from=build /opt /opt
WORKDIR /opt/wvp WORKDIR /opt/wvp
CMD ["java", "-jar","*.jar","--spring.config.location=/opt/wvp/conf/application.yml"] CMD ["sh", "run.sh"]

63
docker/zlm/Dockerfile

@ -1,63 +0,0 @@
FROM ubuntu:18.04 AS build
#shell,rtmp,rtsp,rtsps,http,https,rtp
EXPOSE 9000/tcp
EXPOSE 1935/tcp
EXPOSE 554/tcp
EXPOSE 322/tcp
EXPOSE 80/tcp
EXPOSE 443/tcp
EXPOSE 10000/udp
EXPOSE 10000/tcp
RUN apt-get update && \
DEBIAN_FRONTEND="noninteractive" \
apt-get install -y --no-install-recommends \
build-essential \
cmake \
git \
curl \
vim \
ca-certificates \
tzdata \
libssl-dev \
libmysqlclient-dev \
libx264-dev \
libfaac-dev \
libmp4v2-dev && \
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://github.com/xia-chu/ZLMediaKit && \
cd ZLMediaKit && git submodule update --init --recursive && \
mkdir -p build release/linux/Release/
WORKDIR /opt/media/ZLMediaKit/build
RUN cmake -DCMAKE_BUILD_TYPE=Release .. && \
make
FROM ubuntu:18.04
LABEL maintainer "Gemfield <gemfield@civilnet.cn>"
RUN apt-get update && \
DEBIAN_FRONTEND="noninteractive" \
apt-get install -y --no-install-recommends \
vim \
ca-certificates \
tzdata \
libssl-dev \
libx264-dev \
libfaac-dev \
ffmpeg \
libmp4v2-dev && \
apt-get autoremove -y && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*
WORKDIR /opt/media/bin/
COPY --from=build /opt/media/ZLMediaKit/release/linux/Release/MediaServer /opt/media/bin/MediaServer
ENV PATH /opt/media/bin:$PATH
CMD MediaServer

97
src/main/resources/application-docker.yml

@ -1,97 +0,0 @@
spring:
# REDIS数据库配置
redis:
# [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1
host: redis
# [必须修改] 端口号
port: 6379
# [可选] 数据库 DB
database: 6
# [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接
password: root
# [可选] 超时时间
timeout: 10000
# [可选] jdbc数据库配置, 项目使用sqlite作为数据库,一般不需要配置
datasource:
# 使用mysql 打开23-28行注释, 删除29-36行
# name: wvp
# url: jdbc:mysql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true
# username:
# password:
# type: com.alibaba.druid.pool.DruidDataSource
# driver-class-name: com.mysql.cj.jdbc.Driver
name: eiot
url: jdbc:sqlite::resource:wvp.sqlite
username:
password:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: org.sqlite.JDBC
max-active: 1
min-idle: 1
# [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
server:
port: 18080
# 作为28181服务器的配置
sip:
# [必须修改] 本机的IP
ip: ${WVP_HOST:127.0.0.1}
# [可选] 28181服务监听的端口
port: 5060
# 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007)
# 后两位为行业编码,定义参照附录D.3
# 3701020049标识山东济南历下区 信息行业接入
# [可选]
domain: 6101130049
# [可选]
id: 61011300490000000001
# [可选] 默认设备认证密码,后续扩展使用设备单独密码, 移除密码将不进行校验
password: admin123
#zlm 默认服务器配置
media:
# [必须修改] zlm服务器的内网IP
ip: zlm
# [必须修改] zlm服务器的http.port
http-port: 80
# [可选] zlm服务器的hook.admin_params=secret
secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc
# 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
rtp:
# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
enable: true
# [可选] 在此范围内选择端口用于媒体流传输,
port-range: 30000,30500 # 端口范围
# [可选] 国标级联在此范围内选择端口发送媒体流,
send-port-range: 30000,30500 # 端口范围
# 录像辅助服务, 部署此服务可以实现zlm录像的管理与下载, 0 表示不使用
record-assist-port: 18081
# [可选] 日志配置, 一般不需要改
logging:
file:
name: logs/wvp.log
max-history: 30
max-size: 10MB
total-size-cap: 300MB
level:
com.genersoft.iot: debug
com.genersoft.iot.vmp.storager.dao: info
com.genersoft.iot.vmp.gb28181: info
# [根据业务需求配置]
user-settings:
# 推流直播是否录制
record-push-live: true
auto-apply-play: false
# 在线文档: swagger-ui(生产环境建议关闭)
swagger-ui:
enabled: true
# 版本信息, 不需修改
version:
version: "@project.version@"
description: "@project.description@"
artifact-id: "@project.artifactId@"
Loading…
Cancel
Save