Dockerfile 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. FROM python:3.11-slim-bookworm
  2. ENV PYTHONUNBUFFERED=1 \
  3. PIP_NO_CACHE_DIR=1 \
  4. DOC2MD_MAX_WORKERS=4 \
  5. DOC2MD_MAX_QUEUE_SIZE=8
  6. 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
  7. 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 \
  8. libreoffice \
  9. libreoffice-writer \
  10. fonts-noto-cjk \
  11. fonts-dejavu \
  12. libgl1 \
  13. libglib2.0-0 \
  14. curl \
  15. procps; then success=1; break; fi; sleep 5; done; test "$success" = 1 && rm -rf /var/lib/apt/lists/*'
  16. WORKDIR /app
  17. COPY requirements.txt ./requirements.txt
  18. RUN pip install -r requirements.txt
  19. COPY app ./app
  20. COPY tests ./tests
  21. EXPOSE 8000
  22. HEALTHCHECK --interval=30s --timeout=10s --start-period=20s --retries=3 \
  23. CMD curl -f http://127.0.0.1:8000/openapi.json || exit 1
  24. CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]