29 lines
758 B
Docker
29 lines
758 B
Docker
FROM python:3.13.7-alpine3.22
|
|
|
|
ENV PYTHONDONTWRITEBYTECODE=1 \
|
|
PYTHONUNBUFFERED=1 \
|
|
PIP_NO_CACHE_DIR=1 \
|
|
PIP_DISABLE_PIP_VERSION_CHECK=1 \
|
|
TZ=Asia/Shanghai \
|
|
DATABASE_URL=postgresql://trade:trade@postgres:5432/futures
|
|
|
|
WORKDIR /app
|
|
|
|
# 时区(psycopg[binary] wheel 自带 libpq,不再需要系统装 libpq)
|
|
RUN apk add --no-cache tzdata \
|
|
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
|
|
&& echo "Asia/Shanghai" > /etc/timezone
|
|
|
|
COPY requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
# 非 root 用户
|
|
RUN adduser -D -u 1000 app \
|
|
&& mkdir -p /app/data \
|
|
&& chown app:app /app/data
|
|
|
|
COPY --chown=app:app src ./src
|
|
USER app
|
|
|
|
CMD ["uvicorn", "src.api:app", "--host", "0.0.0.0", "--port", "8000"]
|