容器部署
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问题,可以参考这个讨论
常见问题
- 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