Преглед изворни кода

尝试docker-compose启动

xiaoxie пре 4 година
родитељ
комит
460bd4f9aa

+ 0 - 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"]

+ 10 - 24
docker/docker-compose.yml

@@ -9,37 +9,23 @@ services:
     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"
+      - "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:
       TZ: "Asia/Shanghai"
+      WVP_HOST: 172.18.0.61
+    depends_on:
+      - redis

+ 70 - 20
docker/wvp/Dockerfile

@@ -1,24 +1,74 @@
 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
+
+RUN export DEBIAN_FRONTEND=noninteractive &&\
+        apt-get update && \
+        apt-get install -y --no-install-recommends openjdk-11-jre git maven nodejs npm build-essential \
+        cmake ca-certificates openssl ffmpeg && \
+
+        cd /home && \
+        git clone https://gitee.com/18010473990/maven.git && \
+        cp maven/settings.xml /usr/share/maven/conf/ && \
+        git clone https://gitee.com/18010473990/wvp-GB28181.git && \
+        git clone https://gitee.com/18010473990/wvp-pro-assist.git && \
+        git clone --depth=1 https://gitee.com/xia-chu/ZLMediaKit && \
+        mkdir -p /opt/wvp/config /opt/assist/config /opt/media/www/record && \
+
+        cd /home/wvp-GB28181/web_src && \
+        npm install && \
+        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 5060:5060/tcp
-EXPOSE 5060:5060/udp
+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
+
+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
-CMD ["java", "-jar","*.jar","--spring.config.location=/opt/wvp/conf/application.yml"]
+CMD ["sh", "run.sh"]

+ 0 - 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

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