Spaces:
Paused
Paused
| # This is the final, recommended configuration. | |
| # It builds a single, self-contained image with all dependencies. | |
| services: | |
| pdf2zh: | |
| build: | |
| context: . | |
| # All the setup steps are now part of a one-time build process. | |
| dockerfile_inline: | | |
| FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim | |
| WORKDIR /app | |
| # 1. Install system-level dependencies FIRST. | |
| # This is what solves the "libGL.so.1 not found" error. | |
| RUN apt-get update && \ | |
| apt-get install --no-install-recommends -y libgl1 libglib2.0-0 libxext6 libsm6 libxrender1 && \ | |
| rm -rf /var/lib/apt/lists/* | |
| # 2. Copy only the dependency file and install Python packages. | |
| # This layer is cached and only re-runs if pyproject.toml changes. | |
| COPY pyproject.toml . | |
| RUN uv pip install --system --no-cache -r pyproject.toml | |
| # 3. Copy the rest of your application code. | |
| COPY . . | |
| # 4. Install the local package and perform final updates/warmups. | |
| RUN uv pip install --system --no-cache . && \ | |
| uv pip install --system --no-cache -U "babeldoc<0.3.0" "pymupdf<1.25.3" "pdfminer-six==20250416" && \ | |
| babeldoc --warmup | |
| # The rest of the configuration is for RUNNING the built image. | |
| ports: | |
| - "7860:7860" | |
| environment: | |
| - PYTHONUNBUFFERED=1 | |
| # The UV_LINK_MODE warning happens during build, so we can set it there if needed, | |
| # but it's generally harmless. | |
| command: ["pdf2zh", "-i"] | |
| # Optional: Mount a volume for persistent data I/O if needed | |
| # volumes: | |
| # - ./data:/app/data | |
| stdin_open: true | |
| tty: true |