- 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>
53 lines
1.6 KiB
Docker
53 lines
1.6 KiB
Docker
# ============================================================
|
||
# 基础层:安装运行时依赖
|
||
# ============================================================
|
||
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 . .
|
||
|
||
# ============================================================
|
||
# Community 版本:删除 ee/ 目录
|
||
# ============================================================
|
||
FROM base AS community
|
||
|
||
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"]
|