FROM python:3.12-slim ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PIP_NO_CACHE_DIR=1 \ PIP_DISABLE_PIP_VERSION_CHECK=1 \ TZ=Asia/Hong_Kong # 系统依赖 RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ libpq-dev \ curl \ ca-certificates \ tzdata \ && ln -sf /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime \ && echo "Asia/Hong_Kong" > /etc/timezone \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # 先装依赖(利用 Docker 缓存) COPY pyproject.toml ./ RUN pip install --upgrade pip && \ pip install -e . # 代码(开发期用 volume 覆盖,这里也保留一份) COPY app ./app COPY alembic ./alembic COPY alembic.ini ./ EXPOSE 8000 # 默认启动 uvicorn;docker-compose 中 worker 容器会用别的 command CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]