基于Docker-compose 部署wvp-gb28181-pro项目,并修改默认端口

1 篇文章 0 订阅
1 篇文章 0 订阅

部署环境:

服务器:Ubuntu20.04
网络环境:所有服务部署在同一台服务器,通过docker-compose进行管理;支持局域网和公网环境使用

引用资料:

WVP-PRO源码:https://github.com/648540858/wvp-GB28181-pro/tree/master
流媒体服务:https://github.com/ZLMediaKit/ZLMediaKit/tree/master
ZLM服务部署:https://github.com/ZLMediaKit/ZLMediaKit/wiki
WVP服务部署:https://doc.wvp-pro.cn/#/

软件版本: wvp-gb28181-pro 2.7.0 ZlmediaKit :master
我的部署文件仓库:https://github.com/eric-xdp/wvp_docker_compose

部署方式:

1、ZLM采用docker-compose方式部署
2、WVP与前端采用docker-compose前后端分离方式部署
3、Redis 与Mysql 也是单独使用docker-compose部署
可以整合成一个docker-compose文件,实现一键部署。先去把这个版本的源码下载到本地。

Redis与MySQL配置部署

具体查看GIT仓库内的配置文件。这个比较常规。就不讲了。
mysql启动后,别忘了创建一个数据库wvp, 把初始化数据sql导入进去。数据库名称要记住。后面配置wvp启动项时要连接数据库。

ZLMediaKit配置部署

端口说明:这里可以根据自己的需求修改自己想开放的端口ZLM需要开放和映射的端口

重点说明!!!!

关于40000-40500端口,是提供给RTP传输时自动分配用的,如果使用在wvp配置文件中medis.rtp.enable =false,使用单端口推流,那么无需在zlm中设置容器开放,40000-40500只需要保证服务器内有开放即可,不需要做容器映射。我这里加入到容器端口映射后发现容器启动时间明显增长。甚至有时会导致启动失败。原因暂时不太懂。

如果medis.rtp.enable = true,则表示启用多端口, 需要将对应的端口在ZLM容器启动时进行端口映射。并修改config.ini里面的端口,以及WVP配置文件中的medis.rtp.port-range:40000,45000 这一块非常重要。否则会导致收流失败!另外容器映射过多端口容易导致容器启动缓慢,甚至失败。 多端口映射根据官方描述,最少开放36个。各位请按需映射。我这里port_range=40000-40500映射了500个端口,容器启动用了将近6分钟。

注意 如果要修改ZLM服务配置,也可到这里把配置文件拷贝出来,按照docker-compose.yml文件,进行配置映射。后续修改配置则无需进入容器,但是每次修改完配置文件记得重启容器生效
config.ini配置文件位置

WVP-PRO配置部署

wvp部署就相对轻松了,可以参考官网的直接编译部署。前后端分离部署;我这里使用的是docker-compose 进行前后端分离部署。重点有几个,听我一一道来。先去下载源码,初始化SQL也在源码中

  • 重点1:编写一个适合后端和前端启用容器的docker-compose.yml文件
  • 重点2:wvp的启动配置项,在源码路径里面的src/main/resources/下的yml文件
  • 重点3:前端部署使用Nginx,其中Nginx的配置文件Nginx.conf,主要用反向代理和解决跨域

重点一, docker-compose.yml文件说明:

其中要注意的的是启动容器的网络配置,官方说明wvp需要和ZLM进行高频请求。最好在相同网络环境下,所以我将前后端都部署到和zlm容器的网络下了。其实可以和zlm的docker-compose.yml整理成一个docker-compose.yml。但是我有点懒。先不处理了。后续有时间再整理上来。

端口说明
端口说明
好了,docker-compose.yml差不多就这样了 。

重点二,启动配置项,贴配置:

讲重点配置, sip.ip,这个要设置网卡ip。什么意思呢 。就是你的wvp容器的IP,我们根据wvp的docker-compose.yml 配置的IP来填。 每个人的网络环境不一样。要自己看。

# 查看docker的网络:
docker network ls
#如果你按照我步骤来,它会给你列出这些网络,当然你环境中的ID肯定不同
NETWORK ID     NAME                  DRIVER    SCOPE
3b6083774c22   bridge                bridge    local
eb3a44606343   docker_default        bridge    local
0733faf2e065   host                  host      local
97ef6edab397   none                  null      local
481834f72027   redis_mysql_default   bridge    local
6aefff34ccb9   wvp_potier_default    bridge    local
885885a05874   zlmediakit_default    bridge    local
# 查看指定网络详情,我查看了zlmediakit_default这个网络
docker inspect 8858

查看容器网络
看到没,里面有三个容器。对应的IP都出来了 。和我们前面的配置是一毛一样的。

media.id 这个对应zlm的config.ini文件里面定义的general.mediaServerId medis.secret对应zlm的config.ini文件里面定义的api.secret medis.stream-ip sdp-ip, 如果你有公网IP,则填公网IP,没有就置空media.rtp.enable是否开启多端口。我上面有说。ZlmediaKit的重点说明部分。 其余的配置项根据自己的环境进行配置即可

重点三,前端配置

打包并放到指定路径,前端项目的源码在wvp源码中的web_src文件夹里面 。进去里面执行npm install 和 npm run build把源码打包好,打包好的文件会在源码根目录:src/main/resources/static 中。然后把static拷贝到web目录中。编写DOCKERFILE 创建部署环境这个是以nginx镜像为基础,部署VUE项目。我们还需要修改nginx.conf默认配置

DOCKERFILE内容

FROM nginx:latest
#删除目录下的default.conf文件
#RUN rm /etc/nginx/conf.d/default.conf
#设置时区
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

#将本地nginx.conf配置覆盖nginx配置
COPY nginx.conf /etc/nginx/nginx.conf
# 将vue编译好的dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面
COPY static/  /usr/share/nginx/html/
#声名端口
EXPOSE 80

RUN echo 'web project build success!!'

nginx.conf配置

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

   
    sendfile        on;
    
    keepalive_timeout  65;
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Headers X-Requested-With;
    add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

    server {
        listen       80;
        server_name  localhost;		
        gzip on;
        gzip_min_length 1k;
        gzip_comp_level 9;
        gzip_types text/plain application/javascript application/x-javascript text/css         application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
        gzip_vary on;
        gzip_disable "MSIE [1-6]\.";


        location / {
            root   /usr/share/nginx/html;
        	  index  index.html index.htm;
        	  try_files $uri $uri/ /index.html;
        }
        
        location /debug {
            proxy_pass http://your_wvp_ip:45009;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}

好了。现在回到项目根目录。 执行docker compose up .前后端就启动了。配置摄像机上线,其中SIP服务相关和密码就是wvp启动配置项中的sip.domain,sip.id,sip.password

在这里插入图片描述

登录前端: 默认账号密码是:admin/admin。 妥妥的搞定。

在这里插入图片描述

最后说明

所有的配置文件都在:github仓库内 。个人学习用。有问题也欢迎咨询。

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
你可以通过以下步骤使用docker-compose部署Ceph集群: 1. 创建一个新的文件夹,用于存docker-compose文件和Ceph配置文件。 2. 在该文件夹中创建一个名为`docker-compose.yml`的文件,并添加以下内容: ```yaml version: '3' services: mon: image: ceph/daemon:latest container_name: ceph-mon command: mon environment: - MON_IP=<mon_IP> - CEPH_PUBLIC_NETWORK=<public_network> volumes: - ./ceph:/etc/ceph networks: - ceph-net osd: image: ceph/daemon:latest container_name: ceph-osd command: osd privileged: true environment: - OSD_DEVICE=/dev/sdb - OSD_TYPE=disk - OSD_FORCE_ZAP=1 volumes: - /dev:/dev - ./ceph:/etc/ceph networks: - ceph-net networks: ceph-net: ``` 请确保将`<mon_IP>`替换为mon节点的IP地址,并将`<public_network>`替换为Ceph集群的公共网络CIDR。 3. 在该文件夹中创建一个名为`ceph.conf`的文件,并添加以下内容: ``` [global] fsid = $(uuidgen) mon_initial_members = mon mon_host = <mon_IP> auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx [mon] log file = /var/log/ceph/ceph-mon.log chdir = "" [osd] log file = /var/log/ceph/ceph-osd.log chdir = "" osd_journal_size = 100 ``` 请确保将`<mon_IP>`替换为mon节点的IP地址。 4. 在终端中导航到该文件夹,并运行以下命令来启动Ceph集群: ``` docker-compose up -d ``` 这将使用docker-compose启动一个名为`ceph-mon`的容器作为mon节点,以及一个名为`ceph-osd`的容器作为osd节点。 5. 确保Ceph集群已成功启动,可以使用以下命令来检查: ``` docker exec -it ceph-mon ceph -s ``` 这将显示Ceph集群的状态信息。 以上是使用docker-compose部署Ceph集群的基本步骤。你可以根据自己的需求进行自定义配置和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值