Django项目Docker部署报Unable to configure handler 'django_file'如何解决
解决方案
1. 修复日志目录缺失问题
报错的直接原因是Django日志配置指定输出到/var/log/django/django.log,但容器内并没有预先创建对应的目录,需要修改Dockerfile添加目录创建逻辑:
FROM python:2 ENV PYTHONUNBUFFERED=1 RUN apt-get update && apt-get install -y postgresql-client # 新增:创建Django日志目录并配置读写权限 RUN mkdir -p /var/log/django && chmod 777 /var/log/django WORKDIR /code COPY requirements.txt /code/ RUN pip install -r requirements.txt COPY . /code/
2. 修正数据库配置错误
即使解决日志问题,后续也会出现数据库连接失败的问题,你当前的数据库配置和docker-compose.yml中的PostgreSQL服务配置不匹配,需要修改i5k/settings_prod.py的配置:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'django_i5k', # 和dbik服务的POSTGRES_DB参数保持一致 'USER': 'django', # 和dbik服务的POSTGRES_USER参数保持一致 'PASSWORD': 'postgres', 'HOST': 'dbik', # docker-compose中PostgreSQL的服务名为dbik,不是db 'PORT': '5432', } }
3. 清理旧数据后重新启动
因为你之前已经启动过PostgreSQL服务,本地./data/dbik目录已经存留了旧的初始化数据,为避免配置冲突建议先清理旧数据再启动:
rm -rf ./data docker-compose up --build
内容的提问来源于stack exchange,提问作者user977828
相关产品推荐
相关产品推荐

