Dockerfile 848 B

1234567891011121314151617181920212223242526272829303132
  1. FROM node:24-alpine AS node_builder
  2. FROM python:3.11-slim
  3. WORKDIR /app
  4. ENV PYTHONDONTWRITEBYTECODE 1
  5. ENV PYTHONUNBUFFERED 1
  6. ENV PIP_DISABLE_PIP_VERSION_CHECK=on
  7. # 安装依赖 + 拷贝 Node.js 和 npm
  8. RUN apt-get update && \
  9. apt-get install -y --no-install-recommends curl gcc libpq-dev ca-certificates && \
  10. rm -rf /var/lib/apt/lists/*
  11. # 从 node_builder 拷贝 node 和 npm 到系统路径
  12. COPY --from=node_builder /usr/local/bin/node /usr/local/bin/
  13. COPY --from=node_builder /usr/local/bin/npm /usr/local/bin/
  14. COPY --from=node_builder /usr/local/lib/node_modules /usr/local/lib/node_modules
  15. # 验证 node 和 npm 是否安装成功(可选)
  16. RUN node -v && npm -v
  17. COPY requirements.txt .
  18. RUN pip install --no-cache-dir -r requirements.txt
  19. COPY . .
  20. EXPOSE 6060
  21. CMD ["hypercorn", "task_app:app", "--config", "app_config.toml"]