xiaoxie
2021-11-05 3534268854a60d5c0272b324d7a141f890e1adb5
尝试docker-compose启动
6个文件已添加
257 ■■■■■ 已修改文件
docker/assist/Dockerfile 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docker/docker-compose.yml 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docker/redis/redis.conf 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docker/wvp/Dockerfile 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docker/zlm/Dockerfile 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-docker.yml 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docker/assist/Dockerfile
New file
@@ -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"]
docker/docker-compose.yml
New file
@@ -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"
docker/redis/redis.conf
New file
@@ -0,0 +1,2 @@
requirepass root
bind 0.0.0.0
docker/wvp/Dockerfile
New file
@@ -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"]
docker/zlm/Dockerfile
New file
@@ -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
src/main/resources/application-docker.yml
New file
@@ -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@"