49 lines
1.7 KiB
Docker
49 lines
1.7 KiB
Docker
FROM ghcr.io/astral-sh/uv:latest AS uv
|
|
|
|
FROM python:3.12-slim-bookworm
|
|
|
|
COPY --from=uv /uv /bin/uv
|
|
|
|
ARG UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
|
|
|
|
ENV PYTHONUNBUFFERED=1 \
|
|
PYTHONDONTWRITEBYTECODE=1 \
|
|
UV_SYSTEM_PYTHON=1 \
|
|
UV_INDEX_URL=${UV_INDEX_URL} \
|
|
TZ=Asia/Shanghai \
|
|
PYTHONPATH="/app:${PYTHONPATH}"
|
|
|
|
RUN echo "# 清华大学 Debian 镜像源配置\n\
|
|
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware\n\
|
|
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware\n\
|
|
\n\
|
|
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security/ bookworm-security main contrib non-free non-free-firmware\n\
|
|
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security/ bookworm-security main contrib non-free non-free-firmware\n\
|
|
\n\
|
|
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware\n\
|
|
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware" > /etc/apt/sources.list
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
supervisor \
|
|
tzdata \
|
|
&& ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
|
|
&& echo "Asia/Shanghai" > /etc/timezone \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /app
|
|
|
|
COPY pyproject.toml /app/pyproject.toml
|
|
|
|
RUN uv pip install -r /app/pyproject.toml
|
|
|
|
COPY . /app
|
|
|
|
RUN chmod +x /app/docker-entrypoint.sh \
|
|
&& mkdir -p /app/logs \
|
|
&& mkdir -p /var/log/supervisor
|
|
|
|
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
|
|
|
ENTRYPOINT ["/bin/sh", "/app/docker-entrypoint.sh"]
|
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|