pz / docker-compose.yml
github-actions[bot]
GitHub deploy: 66bda1368d0401aea655e6f29b5c16e55489d2cf
8ce48d0
# 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