You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Django项目部署到Docker容器时HTML页面无法正常显示

Django项目Docker部署后HTML页面无法正常显示问题

我在将自研Django项目部署到Docker容器时遇到问题:使用Gunicorn运行项目后,HTML页面无法正常显示(即使移除静态文件后问题依旧)。以下是我的Dockerfile内容:

FROM python:3.10

# Establece el directorio de trabajo en /app
WORKDIR /app

# Copia el archivo requirements.txt al contenedor en /app/
COPY requirements.txt /app/

# Crea y activa el entorno virtual
RUN python -m venv venv
RUN /bin/bash -c "source venv/bin/activate"

# Instala las dependencias
RUN pip install --no-cache-dir -r requirements.txt

# Copia el contenido del directorio actual al contenedor en /app/
COPY . /app/

# Indica que la aplicación se ejecutará en el puerto 9005
EXPOSE 9005

# Define la variable de entorno para Django
ENV DJANGO_SETTINGS_MODULE=Arriendos_Backend.settings

# Instala Gunicorn

RUN pip install gunicorn


CMD ["gunicorn", "-c", "gunicorn_config.py", "Arriendos_Backend.wsgi:application"]

问题排查与解决方案

  • 修复虚拟环境激活无效问题:Docker中每个RUN指令都是独立的shell进程,单独执行source venv/bin/activate不会让后续指令在虚拟环境中运行。可以直接调用虚拟环境内的pip工具来安装依赖:
    修改Dockerfile中安装依赖和Gunicorn的步骤:

    # 安装依赖
    RUN venv/bin/pip install --no-cache-dir -r requirements.txt
    
    # 安装Gunicorn
    RUN venv/bin/pip install gunicorn
    

    或者直接移除虚拟环境相关步骤(Docker容器本身已提供隔离环境,虚拟环境非必需),直接使用系统pip安装。

  • 修正Django核心配置:

    • 生产环境下(使用Gunicorn),必须将settings.py中的DEBUG设为False,同时配置ALLOWED_HOSTS,例如ALLOWED_HOSTS = ['*'](测试场景可用,生产环境建议指定具体域名/IP)。
    • 执行静态文件收集命令,在Dockerfile中添加:
      RUN venv/bin/python manage.py collectstatic --noinput
      
      (若未使用虚拟环境,改为python manage.py collectstatic --noinput)
  • 检查Gunicorn配置:

    • 确认gunicorn_config.py中绑定了正确的端口和地址,例如:
      bind = "0.0.0.0:9005"
      
    • 也可以直接在CMD中指定端口,省略配置文件:
      CMD ["gunicorn", "--bind", "0.0.0.0:9005", "Arriendos_Backend.wsgi:application"]
      
  • 验证容器端口映射:
    启动容器时必须映射主机端口与容器9005端口,命令示例:

    docker run -p 9005:9005 你的镜像名称
    

内容的提问来源于stack exchange,提问作者Cristhian Leandro Gngora Torre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 14:47:07