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

Docker环境下Django项目psycopg模块加载及PostgreSQL连接问题

Docker环境Django项目问题解决方案

一、psycopg/psycopg2模块加载失败

  • 补全系统依赖:在Dockerfile中添加PostgreSQL编译依赖,避免因缺少底层库导致模块无法编译加载:
    RUN apt-get update && apt-get install -y --no-install-recommends libpq-dev gcc
    
  • 统一依赖声明:在requirements.txt中只保留一种psycopg依赖,推荐用预编译的psycopg2-binary(无需本地编译),示例:
    psycopg2-binary>=2.9.9
    Django>=4.2
    
  • 清理镜像缓存重建:执行以下命令彻底重建web服务镜像,避免旧缓存干扰:
    docker-compose build --no-cache web
    docker-compose up -d
    

二、Django包哈希不匹配导致依赖安装失败

  • 移除或更新哈希值:如果requirements.txt里带有包哈希,直接删除哈希部分(只保留包名+版本),或者进入容器重新生成对应环境的哈希:
    docker-compose exec web pip freeze --all-hashes > requirements.txt
    
  • 统一Python版本:确保Dockerfile中指定的Python版本与生成依赖哈希的环境一致,例如:
    FROM python:3.11-slim
    

三、PostgreSQL连接失败(nodename nor servname provided)

  • 修正数据库主机配置:在Django的settings.py中,数据库HOST必须设置为docker-compose.yml中定义的db服务名(而非localhost),示例:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'postgres',
            'USER': 'postgres',
            'PASSWORD': 'postgres',
            'HOST': 'db',  # 匹配compose里的db服务名
            'PORT': '5432',
        }
    }
    
  • 确认compose依赖配置:在docker-compose.yml中确保web服务依赖db服务,并且网络配置正常:
    services:
      db:
        image: postgres:15-alpine
        volumes:
          - postgres_data:/var/lib/postgresql/data/
        environment:
          - POSTGRES_USER=postgres
          - POSTGRES_PASSWORD=postgres
          - POSTGRES_DB=postgres
      web:
        build: .
        command: python manage.py runserver 0.0.0.0:8000
        volumes:
          - .:/code
        ports:
          - "8000:8000"
        depends_on:
          - db
        environment:
          - DATABASE_URL=postgresql://postgres:postgres@db:5432/postgres
    volumes:
      postgres_data:
    
  • 重建容器网络:如果容器间无法通信,执行以下命令重置网络:
    docker-compose down -v
    docker-compose up -d
    

内容的提问来源于stack exchange,提问作者strikeouts27

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 15:06:31