feat: migrate ORM base to sqlmodel-ext, add file viewers and WOPI integration
- Migrate SQLModel base classes, mixins, and database management to external sqlmodel-ext package; remove sqlmodels/base/, sqlmodels/mixin/, and sqlmodels/database.py - Add file viewer/editor system with WOPI protocol support for collaborative editing (OnlyOffice, Collabora) - Add enterprise edition license verification module (ee/) - Add Dockerfile multi-stage build with Cython compilation support - Add new dependencies: sqlmodel-ext, cryptography, whatthepatch Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
47
Dockerfile
47
Dockerfile
@@ -1,13 +1,52 @@
|
||||
FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim
|
||||
# ============================================================
|
||||
# 基础层:安装运行时依赖
|
||||
# ============================================================
|
||||
FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim AS base
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY pyproject.toml uv.lock ./
|
||||
|
||||
RUN uv sync --frozen --no-dev
|
||||
|
||||
COPY . .
|
||||
|
||||
EXPOSE 5213
|
||||
# ============================================================
|
||||
# Community 版本:删除 ee/ 目录
|
||||
# ============================================================
|
||||
FROM base AS community
|
||||
|
||||
CMD ["uv", "run", "fastapi", "run", "main.py", "--host", "0.0.0.0", "--port", "5213"]
|
||||
RUN rm -rf ee/
|
||||
COPY statics/ /app/statics/
|
||||
|
||||
EXPOSE 5213
|
||||
CMD ["uv", "run", "fastapi", "run", "main.py", "--host", "0.0.0.0", "--port", "5213"]
|
||||
|
||||
# ============================================================
|
||||
# Pro 编译层:Cython 编译 ee/ 模块
|
||||
# ============================================================
|
||||
FROM base AS pro-builder
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends gcc libc6-dev && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN uv sync --frozen --no-dev --extra build
|
||||
|
||||
RUN uv run python setup_cython.py build_ext --inplace && \
|
||||
uv run python setup_cython.py clean_artifacts
|
||||
|
||||
# ============================================================
|
||||
# Pro 版本:包含编译后的 ee/ 模块(仅 __init__.py + .so)
|
||||
# ============================================================
|
||||
FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim AS pro
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY pyproject.toml uv.lock ./
|
||||
RUN uv sync --frozen --no-dev
|
||||
|
||||
COPY --from=pro-builder /app/ /app/
|
||||
COPY statics/ /app/statics/
|
||||
|
||||
EXPOSE 5213
|
||||
CMD ["uv", "run", "fastapi", "run", "main.py", "--host", "0.0.0.0", "--port", "5213"]
|
||||
|
||||
Reference in New Issue
Block a user