Browse Source

尝试docker-compose启动

xiaoxie 4 năm trước cách đây
mục cha
commit
3534268854

+ 26 - 0
docker/assist/Dockerfile

@@ -0,0 +1,26 @@
+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"]

+ 45 - 0
docker/docker-compose.yml

@@ -0,0 +1,45 @@
+version: '3'
+services:
+  redis:
+    image: redis
+    restart: always
+    volumes:
+      - ./redis/redis.conf:/etc/redis/redis_default.conf
+      - ./redis/data/:/data
+    environment:
+      TZ: "Asia/Shanghai"
+    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:
+    build:
+      context: ./wvp
+    restart: always
+    volumes:
+      - ./conf:/opt/wvp/conf
+    ports:
+      - "5060:5060"
+      - "5060:5060/udp"
+      - "18080:18080"
+    environment:
+      TZ: "Asia/Shanghai"

+ 2 - 0
docker/redis/redis.conf

@@ -0,0 +1,2 @@
+requirepass root
+bind 0.0.0.0

+ 24 - 0
docker/wvp/Dockerfile

@@ -0,0 +1,24 @@
+FROM ubuntu:20.04 AS build
+RUN apt-get update && \
+    DEBIAN_FRONTEND="noninteractive" && \
+    apt-get install -y --no-install-recommends openjdk-11-jre-headless git maven nodejs npm &&\
+    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-GB28181.git && \
+    cd /home/wvp-GB28181/web_src && \
+    npm install && \
+    npm run build && \
+    mkdir -p /opt/wvp/config && \
+    cd /home/wvp-GB28181 && \
+    mvn clean package -Dmaven.test.skip=true && \
+    cp src/main/resources/application-docker.yml /opt/wvp/conf/application.yml && \
+    cp target/wvp*.jar /opt/wvp/
+
+FROM openjdk:11-jre-buster
+EXPOSE 18080/tcp
+EXPOSE 5060:5060/tcp
+EXPOSE 5060:5060/udp
+COPY --from=build /opt /opt
+WORKDIR /opt/wvp
+CMD ["java", "-jar","*.jar","--spring.config.location=/opt/wvp/conf/application.yml"]

+ 63 - 0
docker/zlm/Dockerfile

@@ -0,0 +1,63 @@
+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 - 0
src/main/resources/application-docker.yml

@@ -0,0 +1,97 @@
+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@"