约 1 分钟
CVAT部署与配置

容器部署

git clone -b v2.62.0 https://github.com/cvat-ai/cvat.git

运行容器组,在项目根目录下

docker compose up -d

创建管理员账号:

docker compose exec -it cvat_server bash -ic 'python3 ~/manage.py createsuperuser'

自动/半自动标注支持

参考

启动

docker compose -f docker-compose.yml -f components/serverless/docker-compose.serverless.yml up -d

停止

docker compose -f docker-compose.yml -f components/serverless/docker-compose.serverless.yml down
wget https://github.com/nuclio/nuclio/releases/download/<version>/nuctl-<version>-linux-amd64
sudo chmod +x nuctl-<version>-linux-amd64
sudo ln -sf $(pwd)/nuctl-<version>-linux-amd64 /usr/local/bin/nuctl
nuctl deploy --project-name cvat \
  --path serverless/onnx/WongKinYiu/yolov7/nuclio \
  --platform local --base-image tensorflow/tensorflow:1.15.5-gpu-py3 \
  --desc "GPU based implementation of Mask RCNN on Python 3, Keras, and TensorFlow." \
  --image cvat/tf.matterport.mask_rcnn_gpu \
  --triggers '{"myHttpTrigger": {"maxWorkers": 1}}' \
  --resource-limit nvidia.com/gpu=1

这里有个坑,就是上面的命令必须在部署容器之后运行,就算是重启之后也要按照顺序再执行一遍

实现自定义域名访问

在运行前执行

export CVAT_HOST='cvat.example.com'

如果遇到CSRF问题,可以参考这个讨论

实现多个域名

常见问题

  1. 8080/8090 端口绑定失败?
  • 尝试更换docker-compose.yml文件中traefik服务的ports,例如更换为38080/38090(更建议通过override的方式替换)

运维用启停命令(实时更新)

启动:

export CVAT_HOST='cvat.example.com' && \
docker compose -f docker-compose.yml -f docker-compose.override.yml -f components/serverless/docker-compose.serverless.yml -f components/serverless/docker-compose.serverless.override.yml up -d

停止:

docker compose -f docker-compose.yml -f docker-compose.override.yml -f components/serverless/docker-compose.serverless.yml -f components/serverless/docker-compose.serverless.override.yml down