| 1234567891011121314151617181920212223242526272829303132333435363738 |
- FROM python:3.13-slim AS builder
- ENV PYTHONDONTWRITEBYTECODE=1 \
- PYTHONUNBUFFERED=1 \
- PIP_DISABLE_PIP_VERSION_CHECK=1 \
- PIP_NO_CACHE_DIR=1
- WORKDIR /app
- COPY requirements.txt .
- RUN python -m venv /opt/venv \
- && /opt/venv/bin/pip install --upgrade pip -i https://pypi.doubanio.com/simple \
- && /opt/venv/bin/pip install -r requirements.txt -i https://pypi.doubanio.com/simple
- FROM python:3.13-slim AS runtime
- ENV TZ=Asia/Shanghai \
- PYTHONDONTWRITEBYTECODE=1 \
- PYTHONUNBUFFERED=1 \
- PATH="/opt/venv/bin:$PATH"
- WORKDIR /app
- RUN addgroup --system app \
- && adduser --system --ingroup app app
- COPY --from=builder /opt/venv /opt/venv
- COPY . .
- # 有 volumes 挂载时用 root 用户,避免日志目录权限问题
- # 正式发版(无 volume)时再改回 app 用户
- # USER app
- EXPOSE 8001
- CMD ["python", "main.py", "run", "--env=prod"]
|