feat(deepdata): 引入修改密码、文件预览组件与清洗算子增强,deepflow 改名为 deep-flow
本次同步 09-12 至 09-28 的代码变更,主要内容: 新增功能 - 修改密码:后端新增 ChangePasswordRequest DTO 与UserController/UserService 对应接口,前端新增 ChangePasswordDialog 并在 Header 接入入口 - 文件预览组件重构:file-preview 目录拆分出 VideoPreview(支持 blobUrl 直传)、 ImagePreview、AudioPreview,index.tsx 统一调度各类型预览器 - 新增 my_ops 算子模块:markitdown_parser、mineru_pdf_parser、text_quality_evaluator - 新增 tools/minio-file-server MinIO 文件服务 功能增强 - 数据清洗:cleaning_task_service/scheduler/routes 重构, data_juicer_executor 与 wrapper 增强,OperatorTable/LogsTable/TaskDetail 同步调整 - 数据标注:annotation sync.py、project.py 接口与schema 更新 - 数据采集、算子市场、首页与菜单路由相关页面调整 - DataJuicer 算子接入(useOperatorOperations、dj_ops_schema) 结构调整 - deepflow/ 更名为 deep-flow/(419 个文件重命名) - 新增 helm 部署编排、GitHub Actions 之外的自建镜像构建脚本 未纳入本次提交 - scripts-backup/、runtime/python-executor-backup/、components_backup/(备份目录) - *.backup*、__pycache__ 产物 - zh_core_web_sm-3.8.0-py3-none-any.whl(46MB 构建产物) - DataX/(内嵌独立仓库,远程亦未收录其源码)
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
# ==============================================================================
|
||||
# Stage 1: DataX Builder
|
||||
# ==============================================================================
|
||||
FROM maven:3-eclipse-temurin-8 AS datax-builder
|
||||
FROM maven:3-eclipse-temurin-8-alpine AS datax-builder
|
||||
|
||||
# 安装 git
|
||||
RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
|
||||
# 仅安装必要的 git
|
||||
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
|
||||
RUN apk update && apk add --no-cache git
|
||||
|
||||
COPY DataX/ /DataX/
|
||||
COPY runtime/datax/ DataX/
|
||||
@@ -83,7 +85,8 @@ ENV PATH="$PATH:$JAVA_HOME/bin"
|
||||
WORKDIR /opt/runtime
|
||||
|
||||
COPY scripts/images/runtime-ray/zh_core_web_sm-3.8.0-py3-none-any.whl /tmp/
|
||||
COPY scripts/images/common/nltk-data/ /tmp/nltk-data/
|
||||
|
||||
COPY scripts/images/runtime-ray/nltk_data /root/nltk_data
|
||||
|
||||
ENV UV_LINK_MODE=copy
|
||||
|
||||
@@ -91,9 +94,24 @@ ENV UV_LINK_MODE=copy
|
||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||
uv pip install -e . --system \
|
||||
&& uv pip install -r /opt/runtime/deepdata/ops/pyproject.toml --system \
|
||||
&& uv pip install "ray[default]>=2.9.0" --system \
|
||||
&& uv pip install "py-data-juicer[generic,nlp]==1.4.4" --system \
|
||||
&& uv pip install "ray[default]==2.47.1" --system \
|
||||
&& uv pip install "pandas>=2.0.0" --system \
|
||||
&& uv pip install "pyarrow>=14.0.0" --system \
|
||||
&& uv pip install "sqlalchemy>=2.0.0" --system \
|
||||
&& uv pip install "loguru>=0.7.0" --system \
|
||||
&& uv pip install "jsonargparse>=4.27.0" --system \
|
||||
&& uv pip install "pyyaml>=6.0" --system \
|
||||
&& uv pip install "pypdf>=3.17.0" --system \
|
||||
&& uv pip install "python-docx>=1.1.0" --system \
|
||||
&& uv pip install "python-pptx>=0.6.23" --system \
|
||||
&& uv pip install "setuptools<75.0" --system \
|
||||
&& uv pip install \
|
||||
"opentelemetry-semantic-conventions>=0.48b0" \
|
||||
"opentelemetry-exporter-prometheus>=0.48b0" \
|
||||
--system \
|
||||
&& uv pip install pyarrow pandas spacy nltk --system \
|
||||
&& uv pip install /tmp/zh_core_web_sm-3.8.0-py3-none-any.whl --system \
|
||||
&& python -c "import zipfile, os; os.makedirs('/usr/local/nltk_data/packages/tokenizers', exist_ok=True); os.makedirs('/usr/local/nltk_data/packages/taggers', exist_ok=True); zipfile.ZipFile('/tmp/nltk-data/punkt_tab.zip').extractall('/usr/local/nltk_data/packages/tokenizers'); zipfile.ZipFile('/tmp/nltk-data/averaged_perceptron_tagger_eng.zip').extractall('/usr/local/nltk_data/packages/taggers')" \
|
||||
&& echo "/usr/local/lib/ops/site-packages" > /usr/local/lib/python3.11/site-packages/ops.pth
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# 1. 初始化环境 (原有的逻辑:注入用户自定义算子)
|
||||
# 1. 初始化环境
|
||||
if [ -d "/opt/runtime/user" ]; then
|
||||
cp -r /opt/runtime/user/* /opt/runtime/deepdata/ops/user 2>/dev/null || true
|
||||
fi
|
||||
@@ -9,27 +9,30 @@ fi
|
||||
# 2. 根据 RAY_MODE 环境变量决定启动模式
|
||||
if [ "${RAY_MODE}" = "head" ]; then
|
||||
echo "🚀 Starting Ray Head..."
|
||||
# ✅ 修复 Head 分支:
|
||||
# Ray 2.x 已废弃 CLI 参数 --redis-address,改为自动读取环境变量 RAY_REDIS_ADDRESS。
|
||||
# 只要确保 docker-compose.yml 中配置了 RAY_REDIS_ADDRESS 环境变量即可。
|
||||
TOTAL_MEM_MB=${TOTAL_MEM_MB:-4096}
|
||||
OBJECT_STORE_MEM_MB=$((TOTAL_MEM_MB / 2))
|
||||
exec ray start --head \
|
||||
--port=${RAY_HEAD_PORT:-6379} \
|
||||
--redis-password=${RAY_REDIS_PASSWORD} \
|
||||
--dashboard-host=0.0.0.0 \
|
||||
--num-cpus=${NUM_CPUS:-0} \
|
||||
--object-store-memory=${OBJECT_STORE_MEM_MB}000000 \
|
||||
--block
|
||||
|
||||
elif [ "${RAY_MODE}" = "worker" ]; then
|
||||
echo "🚀 Starting Ray Worker connecting to ${RAY_HEAD_ADDRESS}..."
|
||||
# ✅ 修复 Worker 分支:
|
||||
# Ray 2.x 移除了 --worker 参数。只要不传 --head,默认即为 Worker 模式。
|
||||
TOTAL_MEM_MB=${TOTAL_MEM_MB:-16384}
|
||||
OBJECT_STORE_MEM_MB=$((TOTAL_MEM_MB / 2))
|
||||
exec ray start \
|
||||
--address=${RAY_HEAD_ADDRESS} \
|
||||
--redis-password=${RAY_REDIS_PASSWORD} \
|
||||
--num-cpus=${NUM_CPUS:-4} \
|
||||
--memory=${TOTAL_MEM_MB}000000 \
|
||||
--object-store-memory=${OBJECT_STORE_MEM_MB}000000 \
|
||||
--block
|
||||
|
||||
else
|
||||
echo "🔧 Starting Runtime (Legacy Mode / Job Execution)..."
|
||||
# 默认行为:执行 docker-compose.yml command 传入的指令,或 Ray Job 的入口点
|
||||
# 默认行为:执行 docker-compose.yml command 传入的指令
|
||||
exec "$@"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user