aifeilong 9f9c5f814f Add Docker packaging for production deployment with uWSGI.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 17:45:23 +08:00

55 lines
1.3 KiB
Docker

# 使用官方的Python基础镜像
FROM python:3.10-slim
# 替换 sources.list 中的源为 USTC 镜像
# RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources
RUN sed -i "s@http://deb.debian.org/debian@http://mirrors.tencent.com/debian@g" /etc/apt/sources.list.d/debian.sources
RUN apt-get update && apt-get install -y \
build-essential \
git \
gcc \
autoconf \
automake \
pkg-config \
libtool \
locales
# 生成 en_US.UTF-8 locale
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \
locale-gen en_US.UTF-8
# Set environment variables
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV LC_ALL=en_US.UTF-8
# Verify that the locale is correctly set (optional)
RUN locale
RUN pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/simple
RUN pip install --upgrade pip
# 设置工作目录
WORKDIR /app
# 复制依赖文件并安装依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 安装uWSGI
RUN pip install uwsgi
# 复制项目文件
COPY . .
# 暴露uWSGI的默认端口
EXPOSE 8000
COPY ./entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
# 使用uWSGI运行Django应用
CMD ["uwsgi", "--ini", "uwsgi.prod.ini"]
ENTRYPOINT ["/entrypoint.sh"]