CVAT 使用(4) 安装采坑

0. 前言

  • 安装过程比较痛苦。之前是一个同事安装的,装了一周都还有各种各样的问题……
  • 安装失败的主要原因有:
    • 最主要的原因——网速不行
    • 出现问题进行定位的时候,由于对Docker和Nodejs不了解,所以走了不少弯路。
  • 自己的安装历程
    • 在公司服务器 Ubuntu 16.04 Server 上通过VPN代理下载各种包,成功搞定v1.1.0。
    • 在家中电脑 Ubuntu 16.04 Desktop 上尝试安装失败(现在安装v1.2.0-alpha应该没问题了,安装v1.1.0估计还有问题,原因后面再说)。
    • 在阿里云上租用服务器 Ubuntu 18.04 Server 成功安装v1.1.0/v1.2.0-alpha/develop。
  • 为了方便自己和他人,我把修改后的cvat源码传到了gitee上

1. 采坑记录

  • 先说下猜到的坑,给各位后来这一些意见。

1.1. 网速相关

  • 建议在正式安装前先进行这些步骤。
  • git clone cvat 的速度非常慢
    • 使用gitee复制cvat源码,直接从gitee上拉。
    • 我复制了一份自己的 git clone https://gitee.com/irving512/cvat.git
  • 安装docker速度非常慢
    • 这部分内容其实是安装文档里有的,只是修改了一下获取数据的源。
    • 全部使用阿里源
sudo apt-get update
sudo apt-get --no-install-recommends install -y \
  apt-transport-https \
  ca-certificates \
  curl \
  gnupg-agent \
  software-properties-common
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
sudo add-apt-repository \
  "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  $(lsb_release -cs) \\
  stable"
sudo apt-get update
sudo apt-get --no-install-recommends install -y docker-ce docker-ce-cli containerd.io
  • docker pull 速度非常慢。
    • 解决方案:添加 docker 镜像。
    • 具体方式就是:修改/添加 /etc/docker/daemon.json,添加以下内容
{
    "registry-mirrors": ["https://registry.docker-cn.com"]
}
  • apt install 速度非常慢

    • 在Dockerfile中添加阿里源。

    • 根据Ubuntu版本不同,要添加的源也不同。

# v1.1.0 使用的Ubuntu 16.04,要添加的内容是
RUN echo deb http://mirrors.aliyun.com/ubuntu/ xenial main          > /etc/apt/sources.list
RUN echo deb-src http://mirrors.aliyun.com/ubuntu/ xenial main        >> /etc/apt/sources.list
RUN echo                                   >> /etc/apt/sources.list
RUN echo deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main      >> /etc/apt/sources.list
RUN echo deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main    >> /etc/apt/sources.list
RUN echo                                   >> /etc/apt/sources.list
RUN echo deb http://mirrors.aliyun.com/ubuntu/ xenial universe        >> /etc/apt/sources.list
RUN echo deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe      >> /etc/apt/sources.list
RUN echo deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe    >> /etc/apt/sources.list
RUN echo deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe  >> /etc/apt/sources.list
RUN echo                                   >> /etc/apt/sources.list
RUN echo deb http://mirrors.aliyun.com/ubuntu/ xenial-security main      >> /etc/apt/sources.list
RUN echo deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main    >> /etc/apt/sources.list
RUN echo deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe    >> /etc/apt/sources.list
RUN echo deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe  >> /etc/apt/sources.list

# v1.2.0/develop 使用的Ubuntu是 20.04,要添加的内容是
RUN echo deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse > /etc/apt/sources.list
RUN echo deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse >> /etc/apt/sources.list
RUN echo  >> /etc/apt/sources.list
RUN echo deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse >> /etc/apt/sources.list
RUN echo deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse >> /etc/apt/sources.list
RUN echo  >> /etc/apt/sources.list
RUN echo deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse >> /etc/apt/sources.list
RUN echo deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse >> /etc/apt/sources.list
RUN echo  >> /etc/apt/sources.list
RUN echo deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse >> /etc/apt/sources.list
RUN echo deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse >> /etc/apt/sources.list
RUN echo  >> /etc/apt/sources.list
RUN echo deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse >> /etc/apt/sources.list
RUN echo deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse >> /etc/apt/sources.list
  • pip install 速度非常慢

    • 这个很好处理,就是在所有 pip install 后面临时添加国内源。
    • 要添加的内容是 -i https://mirrors.aliyun.com/pypi/simple/
    • 需要修改的文件有 Dockerfile/Dockerfile.ci 两个文件。
  • npm install 速度非常慢

    • 添加 npm 的国内源即可。
    • Dockerfile.ui中添加一句RUN npm config set registry https://registry.npm.taobao.org
    • 添加在第二行。
  • git clone 速度非常慢

    • pip源有一个是要从github上下载,所以需要修改。
    • 需要修改的内容是在 cvat/requirements/base.txt
    • git+https://github.com/openvinotoolkit/datumaro@v0.1.3 修改为 git+https://gitee.com/openvinotoolkit-prc/datumaro.git@v0.1.3
  • 从github下载速度非常慢

    • 这个指的是 node-sass 在安装时候需要从github中下载数据。
    • 解决方案:该问题本质是安装 node-sass 的问题,所以先手动安装 node-sass 并制定国内源即可。
    • 就是在Docerfile.ui添加 RUN npm config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g npm install --no-optional npm i node-sass --save
    • 添加的位置是在 cvat-canvas 安装之前,即在 WORKDIR /tmp/cvat-canvas/ 之后。
  • 有一个现在我解决不了的网速相关问题

    • 在v1.1.0中,会添加别的apt源,即add-apt-repository ppa:mc3man/xerus-media -y
    • 我在自己家电脑上从这个源安装时,无法从mc3man中获取数据,所以这一步就卡住没办法了……
    • 解决方案:
      • 换成v1.2.0-alpha就不用这个仓库了,这是我的最终方案……

1.2. 其他问题

  • pycocotools 安装失败
    • 这个问题在v1.1.0中没有,在v1.2.0-alpha和develop上都有。
    • 本质就是
      • 通过 pip install pycocotools不会自动安装其依赖
      • 在依赖同时 pip install 时安装不成功
    • 解决方案:先pip install cython numpy,再pip install pycocotools
  • 内存过小会导致安装失败
    • 阿里云最开始租用了一台最差的服务器,即只有1G的内存,结果在安装pyhash的时候提示内存不够了……
    • 失败了之后我就升级了服务器配置,使用了2G内存,就没问题了。
    • 好像是安装 v1.1.0 时候的问题,不知道v1.2.0-alpha是否存在这个问题。
  • node-sass 版本导致的问题
    • 表现形式:具体错误忘了,大概意思就是 sass x64-83_binding 这个文件不存在,404了。
    • 这个错误只有在v1.1.0存在,导致问题的原因是 node-sass的版本太低。
    • 换句话说,如果使用 v1.1.0版本,必须升级 node-sass 的版本,从v4.13.1升到v4.14.1。
    • 具体怎么升级呢
      • 修改 cvat-canvas和cvat-ui中的package.json文件,升级版本为v4.14.1
      • 修改 cvat-canvas和cvat-ui中的package-lock.json文件,删除node-sass相关内容即可。

2. 安装基本流程

2.1. 准备工作

  • 下载cvat源码

    • 如果cvat下载速度慢,可以去gitee上下载。
  • 设置之前提到的各种源

    • 包括 docker/docker pull/apt/pip/npm 等问题
  • 设置一切其他cvat选项

    • 主要包括设置服务器ip(为了让其他终端连接到安装的cvat,必须开放对应的端口)
    • 默认端口使用的是8080,需要将服务器的8080端口开放
    • 设置shared path,即在新建task的时候指定share path中的数据作为数据源。
    • 即新建 docker-compose.override.yml,内容如下
version: '3.3'

services:
  cvat_proxy:
    environment:
      CVAT_HOST: my_ip or_my_url

  cvat:
    environment:
      CVAT_SHARE_URL: 'Mounted from /mnt/share host directory'
    volumes:
      - cvat_share:/home/django/share:ro

volumes:
  cvat_share:
    driver_opts:
      type: none
      device: /root/data  # 需要修改的就是这个元素
      o: bind

2.2. 基本安装流程

  • 安装docker,在上面提到过了,需要修改源
  • 其他相关操作
sudo groupadd docker
sudo usermod -aG docker $USER

sudo apt-get --no-install-recommends install -y python3-pip
sudo python3 -m pip install setuptools docker-compose

sudo apt-get --no-install-recommends install -y git
git clone https://gitee.com/irving512/cvat.git
cd cvat
# 可能还需要切换分支,比如使用我自己的 develop-20201204-aliyun

# 在执行这一步前需要配置好所有源
# 安装容器
docker-compose build

# 启动容器
docker-compose up -d

# 创建超级用户
docker exec -it cvat bash -ic 'python3 ~/manage.py createsuperuser'

# 之后的使用就不属于安装范围了
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页