Files

51 lines
1.1 KiB
Docker
Raw Permalink Normal View History

# 使用Python官方镜像
FROM python:3.11-slim
# 设置工作目录
WORKDIR /app
# 设置环境变量
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
PIP_NO_CACHE_DIR=1 \
PIP_DISABLE_PIP_VERSION_CHECK=1
# 安装系统依赖
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
libpq-dev \
gettext \
curl \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# 复制依赖文件
COPY requirements.txt .
# 安装Python依赖
RUN pip install --upgrade pip \
&& pip install -r requirements.txt
# 复制项目文件
COPY . .
# 创建静态文件和媒体文件目录
RUN mkdir -p staticfiles media
# 设置权限
RUN chmod +x deploy.py create_superuser.py
# 收集静态文件
RUN python manage.py collectstatic --noinput
# 健康检查
HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \
CMD curl -f http://localhost:8000/api/auth/login/ || exit 1
# 暴露端口
EXPOSE 8000
# 启动命令
CMD ["gunicorn", "config.wsgi:application", "--bind", "0.0.0.0:8000", "--workers", "4"]