| 123456789101112131415161718192021222324252627282930313233 |
- FROM python:3.11-slim-bookworm
- ENV PYTHONUNBUFFERED=1 \
- PIP_NO_CACHE_DIR=1 \
- DOC2MD_MAX_WORKERS=4 \
- DOC2MD_MAX_QUEUE_SIZE=8
- RUN sed -i 's|http://deb.debian.org/debian|https://mirrors.tuna.tsinghua.edu.cn/debian|g; s|http://deb.debian.org/debian-security|https://mirrors.tuna.tsinghua.edu.cn/debian-security|g' /etc/apt/sources.list.d/debian.sources
- RUN bash -lc 'success=0; for i in 1 2 3; do if apt-get -o Acquire::Retries=5 update && apt-get -o Acquire::Retries=5 install -y --fix-missing --no-install-recommends \
- libreoffice \
- libreoffice-writer \
- fonts-noto-cjk \
- fonts-dejavu \
- libgl1 \
- libglib2.0-0 \
- curl \
- procps; then success=1; break; fi; sleep 5; done; test "$success" = 1 && rm -rf /var/lib/apt/lists/*'
- WORKDIR /app
- COPY requirements.txt ./requirements.txt
- RUN pip install -r requirements.txt
- COPY app ./app
- COPY tests ./tests
- EXPOSE 8000
- HEALTHCHECK --interval=30s --timeout=10s --start-period=20s --retries=3 \
- CMD curl -f http://127.0.0.1:8000/openapi.json || exit 1
- CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
|