Dockerfile 1.1 KB

1234567891011121314151617181920212223242526272829
  1. FROM dev.data-turing.cn:14443/library/python:3.13-slim-bookworm AS build
  2. COPY --from=dev.data-turing.cn:14443/library/uv:latest /uv /uvx /bin/
  3. WORKDIR /app
  4. ENV UV_COMPILE_BYTECODE=1 UV_LINK_MODE=copy UV_PYTHON_INSTALL_MIRROR="https://ghfast.top/https://github.com/astral-sh/python-build-standalone/releases/download"
  5. COPY uv.lock pyproject.toml ./
  6. RUN --mount=type=cache,target=/root/.cache/uv \
  7. uv sync --no-install-project --no-dev
  8. COPY . .
  9. # Frontend dist is expected to be built in CI before docker build.
  10. RUN test -f frontend/dist/index.html
  11. RUN --mount=type=cache,target=/root/.cache/uv \
  12. uv sync --frozen --no-dev
  13. FROM dev.data-turing.cn:14443/library/python:3.13-slim-bookworm AS runtime
  14. ENV PATH="/app/.venv/bin:$PATH" \
  15. PYTHONUNBUFFERED=1 \
  16. HOST="0.0.0.0" \
  17. PORT="8000" \
  18. MCP_TAVILY_UPSTREAM_BASE_URL="http://127.0.0.1:8101/mcp"
  19. RUN groupadd -g 1001 appgroup && \
  20. useradd -u 1001 -g appgroup -m -d /app -s /bin/false appuser
  21. WORKDIR /app
  22. COPY --from=build --chown=appuser:appgroup /app .
  23. USER appuser
  24. EXPOSE 8000
  25. CMD ["python", "-u", "-m", "backend.app"]