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上
- 修改后的develop分支
- 修改后的v1.1.0分支
- 需要注意的是,分支中添加的源包括apt/pip/npm,不包括docker/docker pull
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就不用这个仓库了,这是我的最终方案……
- 在v1.1.0中,会添加别的apt源,即
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相关内容即可。
- 修改 cvat-canvas和cvat-ui中的
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'
# 之后的使用就不属于安装范围了