MiroFish / Dockerfile
Codex Deploy
Defer heavy imports for Space startup
dc2650a
raw
history blame contribute delete
847 Bytes
FROM python:3.11
# 安装 Node.js (满足 >=18)及必要工具
RUN apt-get update \
&& apt-get install -y --no-install-recommends nodejs npm \
&& rm -rf /var/lib/apt/lists/*
# 从 uv 官方镜像复制 uv
COPY --from=ghcr.io/astral-sh/uv:0.9.26 /uv /uvx /bin/
WORKDIR /app
# 先复制依赖描述文件以利用缓存
COPY frontend/package.json frontend/package-lock.json ./frontend/
COPY backend/pyproject.toml backend/uv.lock ./backend/
# 安装依赖(Node + Python)
RUN npm ci --prefix frontend \
&& cd backend && uv sync --frozen --no-dev
# 复制项目源码
COPY . .
# 构建前端静态资源
RUN npm run build --prefix frontend
ENV FLASK_HOST=0.0.0.0 \
FLASK_PORT=7860 \
FLASK_DEBUG=false
EXPOSE 7860
# 启动后端并托管前端静态文件
CMD ["sh", "-lc", "cd /app/backend && .venv/bin/python run.py"]