Label Studio 数据标注平台安装部署:3 条路径与生产加固清单 Label Studio 数据标注平台安装部署3 条路径与生产加固清单【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studioLabel Studio 是一个开源数据标注平台把图像、文本、音频、视频的标注统一为标准化 JSON 输出格式。本文覆盖 Docker Compose、pip、源码三种安装路径的选型对比、部署前检查、首次启动的环境变量、本地与云端存储接入并附故障速查表和生产加固清单供团队部署或二次开发场景选择路径时参照。 部署路径选型部署路径与适用场景对照表部署路径适用场景前置依赖运维成本Docker Compose小团队生产、多标注员Docker Engine Compose 1.25、8GB 内存低镜像拉取 卷持久化迁移自动执行pip SQLite个人试用、小数据量Python ≥ 3.10无其他依赖极低单进程随停随启源码uv二次开发、定制标签或前端Python ≥ 3.10、uv、前端工具链bun高需维护迁移脚本与前端构建如果你的场景是几十个样本的验证pip 足够五人以上团队长期使用直接上 Docker Compose它内置 PostgreSQL。注意官方文档标注的 Python 下限偏低当前源码的 pyproject.toml 中 requires-python 为 3.10,4源码安装直接用 3.10。另外注意容器以非 root 运行挂载的主机目录 UID 必须是 1001否则写库、写日志会权限拒绝。 环境与前置检查版本兼容与最小资源基线数据库PostgreSQL 14 或 SQLite 3.35内存最低 8GB建议 16GB磁盘100 万条任务约 2.3GBSQLite生产建议 50GB浏览器以最新 Chrome 为测试基准其他浏览器可能有兼容问题端口占用排查默认端口 8080docker-compose 中把容器 8085 映射到主机 8080。部署前先确认ss -tlnp | grep -E :8080|:8081 python3 --version docker compose version端口被占用时启动参数--port换端口或修改 docker-compose.yml 里的 ports 映射。 部署与初始化本节以 Docker Compose 为主路径。pip 路径为pip install label-studio label-studio start my_project --init默认 SQLite源码路径按 docs/source/guide/install.md 的 Install from source 一节操作uv 装依赖后执行 migrate 与 runserver。git clone https://gitcode.com/GitHub_Trending/la/label-studio cd label-studio docker compose up -d环境变量清单变量用途LABEL_STUDIO_HOST对外访问地址用于生成任务链接与静态资源前缀JSON_LOG1输出 JSON 结构化日志POSTGRES_HOST / POSTGRES_PASSWORD数据库连接参数默认 trust 认证LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED是否启用本地文件服务Docker Compose 场景把这些变量写入.env文件即可Compose 会自动注入 app 容器。数据库初始化无需手动执行迁移容器启动时 deploy/docker-entrypoint.d/30-run-db-migrations.sh 会等待数据库就绪后自动跑迁移。应用数据持久化在./mydata目录PG 数据目录默认./postgres-data可用POSTGRES_DATA_DIR指向其他磁盘。首次启动验证curl -I http://localhost:8080/ docker compose ps返回 200 且两个容器均为 Up 后浏览器打开完成账号注册。LABEL_STUDIO_HOST未设置时所有任务链接使用相对路径走反向代理时务必补设否则导入的媒体链接会指向错误域名。 数据与存储接入存储连接是项目级的单个项目可添加多个源source和目标target连接在项目设置或 API 中创建。源存储负责导入数据目标存储负责回传标注结果。本地目录先设两个环境变量再在项目设置中添加 Local Files 源export LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLEDtrue export LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT/home/user/dataDocker 运行时需要把该目录挂载为卷容器内才可见任务 JSON 中用/data/local-files/?d相对路径引用文件。对象存储与云盘S3、GCS、Azure、Redis 均支持。源存储只需 LIST/GET 权限目标存储需 PUT接入后浏览器通过预签名 URL 加载媒体S3 桶需配置 CORS允许 GET否则媒体 403。任务 JSON 可直接引用对象{ image: s3://bucket/1.jpg, text: opossums are awesome }⚠️ 故障速查症状可能原因处理命令8080 端口被占用其他服务占用label-studio start --port 9001容器反复重启app 日志出现 denied主机目录 UID 1001 不可写chown 1001:1001 mydata docker compose up -d启动后访问 502app 未就绪或数据库连接失败docker compose logs app与docker compose logs db本地文件图片加载不出本地文件服务未启用以LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLEDtrue重启S3 媒体 403 / CORS 报错桶未配置 GET CORS 策略桶 CORS 增加 AllowedMethods GET版本升级后老项目数据缺失旧项目未触发迁移label-studio start path/to/old/project响应缓慢、内存持续上涨SQLite 并发写入瓶颈数据库切换为 PostgreSQL️ 生产加固清单定期备份数据库并验证可恢复docker compose exec db pg_dump -U postgres postgres backup-$(date %F).sql结构化日志与采集开启JSON_LOG1将LOG_DIR指向挂载到主机的目录再接入 ELK 或 Loki。版本升级pip 路径执行pip install --upgrade label-studioDocker 路径拉新镜像后重跑docker compose up -d。迁移会自动执行升级前先备份数据库。权限收敛生产环境不要保留POSTGRES_HOST_AUTH_METHODtrust改为密码认证并按部署配置中的 PostgreSQL 证书目录配置 TLS。数据根目录最小化LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT指向包含标注数据的最小目录避免本地文件服务暴露更宽路径。反向代理与 HTTPS通过自定义 nginx 配置或在网关层终结 SSL对外只暴露 443 端口。【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考