Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ValueError:无法配置处理程序';django#u文件';_Python_Django_Postgresql_Docker_Docker Compose - Fatal编程技术网

Python ValueError:无法配置处理程序';django#u文件';

Python ValueError:无法配置处理程序';django#u文件';,python,django,postgresql,docker,docker-compose,Python,Django,Postgresql,Docker,Docker Compose,我发现了一个Django项目,但未能通过以下方式使其在Docker容器中运行: git克隆git克隆https://github.com/NAL-i5K/django-blast.git $cat requirements.txt在此文件中,必须更新以下依赖项: psycopg2==2.8.6 我有以下Dockerfile: FROM python:2 ENV PYTHONUNBUFFERED=1 RUN apt-get update && apt-get install

我发现了一个Django项目,但未能通过以下方式使其在Docker容器中运行:

  • git克隆git克隆https://github.com/NAL-i5K/django-blast.git
  • $cat requirements.txt
    在此文件中,必须更新以下依赖项:
    • psycopg2==2.8.6
  • 我有以下Dockerfile:

    FROM python:2
    ENV PYTHONUNBUFFERED=1
    RUN apt-get update && apt-get install -y postgresql-client
    WORKDIR /code
    COPY requirements.txt /code/
    RUN pip install -r requirements.txt
    COPY . /code/
    
    对于
    docker compose.yml
    我使用:

    version: "3"
    
    services:
      dbik:
        image: postgres
        volumes:
          - ./data/dbik:/var/lib/postgresql/data
          - ./scripts/install-extensions.sql:/docker-entrypoint-initdb.d/install-extensions.sql
    
        environment:
          - POSTGRES_DB=django_i5k
          - POSTGRES_USER=django
          - POSTGRES_PASSWORD=postgres
        ports:
          - 5432:5432
    
    
      web:
        build: .
        command: python manage.py runserver 0.0.0.0:8000
        volumes:
          - .:/code
        ports:
          - "8000:8000"
        depends_on:
          - dbik
        links:
          - dbik
    
    
    我必须改变:

    $ vim i5k/settings_prod.py
    DATABASES = {
        'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'db',
        'PORT': '5432',
        }
    }
    
    接下来,我运行了
    docker compose-up--build

    Starting djangoblast_dbik_1 ... 
    Starting djangoblast_dbik_1 ... done
    Recreating djangoblast_web_1 ... 
    Recreating djangoblast_web_1 ... done
    Attaching to djangoblast_dbik_1, djangoblast_web_1
    dbik_1  | 
    dbik_1  | PostgreSQL Database directory appears to contain a database; Skipping initialization
    dbik_1  | 
    dbik_1  | 2021-05-21 21:05:18.976 UTC [1] LOG:  starting PostgreSQL 13.3 (Debian 13.3-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
    dbik_1  | 2021-05-21 21:05:18.976 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
    dbik_1  | 2021-05-21 21:05:18.976 UTC [1] LOG:  listening on IPv6 address "::", port 5432
    dbik_1  | 2021-05-21 21:05:18.988 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
    dbik_1  | 2021-05-21 21:05:18.996 UTC [26] LOG:  database system was shut down at 2021-05-21 21:02:03 UTC
    dbik_1  | 2021-05-21 21:05:19.003 UTC [1] LOG:  database system is ready to accept connections
    web_1   | Unhandled exception in thread started by <function wrapper at 0x7fa1ec3bebd0>
    web_1   | Traceback (most recent call last):
    web_1   |   File "/usr/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 229, in wrapper
    web_1   |     fn(*args, **kwargs)
    web_1   |   File "/usr/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 107, in inner_run
    web_1   |     autoreload.raise_last_exception()
    web_1   |   File "/usr/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 252, in raise_last_exception
    web_1   |     six.reraise(*_exception)
    web_1   |   File "/usr/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 229, in wrapper
    web_1   |     fn(*args, **kwargs)
    web_1   |   File "/usr/local/lib/python2.7/site-packages/django/__init__.py", line 17, in setup
    web_1   |     configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
    web_1   |   File "/usr/local/lib/python2.7/site-packages/django/utils/log.py", line 86, in configure_logging
    web_1   |     logging_config_func(logging_settings)
    web_1   |   File "/usr/local/lib/python2.7/logging/config.py", line 794, in dictConfig
    web_1   |     dictConfigClass(config).configure()
    web_1   |   File "/usr/local/lib/python2.7/logging/config.py", line 576, in configure
    web_1   |     '%r: %s' % (name, e))
    web_1   | ValueError: Unable to configure handler 'django_file': [Errno 2] No such file or directory: '/var/log/django/django.log'
    
    正在启动djangoblast\u dbik\u 1。。。
    正在启动djangoblast_dbik_1。。。完成
    正在重新创建djangoblast_web_1。。。
    正在重新创建djangoblast_web_1。。。完成
    连接到djangoblast_dbik_1,djangoblast_web_1
    dbik_1|
    dbik|U 1 | PostgreSQL数据库目录似乎包含一个数据库;跳过初始化
    dbik_1|
    dbik|U 1 | 2021-05-21 21:05:18.976 UTC[1]日志:在x86|U 64-pc-linux-gnu上启动PostgreSQL 13.3(Debian 13.3-1.pgdg100+1),由gcc(Debian 8.3.0-6)8.3.0,64位编译
    dbik_1 | 2021-05-21 21:05:18.976 UTC[1]日志:侦听IPv4地址“0.0.0.0”,端口5432
    dbik_1 | 2021-05-21 21:05:18.976 UTC[1]日志:侦听IPv6地址:“,端口5432”
    dbik_1 | 2021-05-21 21:05:18.988 UTC[1]日志:在Unix套接字上侦听“/var/run/postgresql/.s.PGSQL.5432”
    dbik|U 1 | 2021-05-21 21:05:18.996 UTC[26]日志:数据库系统在2021-05-21:02:03 UTC关闭
    dbik_1 | 2021-05-21 21:05:19.003 UTC[1]日志:数据库系统已准备好接受连接
    web_1 |由启动的线程中存在未处理的异常
    web_1 |回溯(最近一次呼叫最后一次):
    web|1 |文件“/usr/local/lib/python2.7/site packages/django/utils/autoreload.py”,第229行,在包装器中
    web|1 | fn(*args,**kwargs)
    web|1|文件“/usr/local/lib/python2.7/site packages/django/core/management/commands/runserver.py”,第107行,在内部|run中
    web_1 |自动加载。引发上次异常()
    web|1|文件“/usr/local/lib/python2.7/site packages/django/utils/autoreload.py”,第252行,在raise|last|异常中
    web|1 | 6.重新播放(*|例外)
    web|1 |文件“/usr/local/lib/python2.7/site packages/django/utils/autoreload.py”,第229行,在包装器中
    web|1 | fn(*args,**kwargs)
    web|1 |文件“/usr/local/lib/python2.7/site packages/django/_uinit__uuuuuu.py”,第17行,在安装程序中
    web_1|配置_日志记录(settings.logging_CONFIG,settings.logging)
    web|1|文件“/usr/local/lib/python2.7/site packages/django/utils/log.py”,第86行,在配置|日志记录中
    web_1 |日志记录_配置_函数(日志记录设置)
    web_1 |文件“/usr/local/lib/python2.7/logging/config.py”,第794行,在dictConfig中
    web_1 | dictConfigClass(config).configure()
    web_1 |文件“/usr/local/lib/python2.7/logging/config.py”,第576行,在configure中
    web_1 |“%r:%s%”(名称,e))
    web_1 | ValueError:无法配置处理程序'django_file':[Errno 2]没有这样的文件或目录:'/var/log/django/django.log'
    
    我错过了什么

    提前感谢您

    来自stack trace:

    ValueError:无法配置处理程序'django_file':[Errno 2]没有这样的文件或目录:'/var/log/django/django.log'

    您需要在映像中创建
    /var/log/django
    目录

    RUN mkdir -p /var/log/django
    

    查看repo,您可能还需要创建
    /var/log/i5k

    它是用于Python 2.7的吗?因为在您的错误中,我可以看到它试图在Python2.7中查找django_文件?
    RUN mkdir -p /var/log/django