Django 服务器不以 docker-compose up 启动

Posted

技术标签:

【中文标题】Django 服务器不以 docker-compose up 启动【英文标题】:Django server does not start with docker-compose up 【发布时间】:2022-01-23 04:07:36 【问题描述】:

我将我的 django 后端应用程序化。我正在使用 posgresql 作为数据库。在做 docker-compose up 之后,最后的日志是:

db_1       | 2021-12-21 18:39:58.213 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
db_1       | 2021-12-21 18:39:58.213 UTC [1] LOG:  listening on IPv6 address "::", port 5432
db_1       | 2021-12-21 18:39:58.310 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1       | 2021-12-21 18:39:58.476 UTC [42] LOG:  database system was shut down at 2021-12-21 18:39:58 UTC
db_1       | 2021-12-21 18:39:58.678 UTC [1] LOG:  database system is ready to accept connections

我没有收到任何其他日志,我不知道问题是什么,可能是由于 postgresql。但是 django 服务器没有启动。 我做了 docker ps 我得到了以下结果

CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS          PORTS                                       NAMES
d92379ca89b7   prodlerbackend_prodler   "python manage.py ru…"   20 minutes ago   Up 20 minutes   0.0.0.0:8000->8000/tcp, :::8000->8000/tcp   prodlerbackend_prodler_1
3364c1cda344   postgres:11.2-alpine     "docker-entrypoint.s…"   20 minutes ago   Up 20 minutes   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp   prodlerbackend_db_1

我认为容器已启动,但 Django 服务器仍未启动可能是什么问题?

docker-compose.yml

version: "3.9"

services:
  db:
    image: postgres:11.2-alpine
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
    environment:
      - HOST=localhost
      - POSTGRES_DB=prodler
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=admin123
    ports:
      - 5432:5432
  prodler:
    build:
      context: .
      dockerfile: Dockerfile
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

【问题讨论】:

好像在运行,访问http://localhost:8000得到什么响应? 这能解决您的问题吗? ***.com/questions/29663459/… 我在访问 localhost:8000 时没有得到任何响应。网页打不开 如果您尝试自己运行 prodler 容器,那么您会得到任何输出吗? docker compose run --rm prodler python -u manage.py runserver 0.0.0.0:8000 不,它给出了这个错误:“无法连接到服务器:无法分配请求的地址服务器是否在主机“localhost”(::1) 上运行并接受端口 5432 上的 TCP/IP 连接? " 【参考方案1】:

您需要在配置中更改连接详细信息以连接到 postgres:5432

【讨论】:

以上是关于Django 服务器不以 docker-compose up 启动的主要内容,如果未能解决你的问题,请参考以下文章

Django 无法创建到“postgres”数据库的连接,而是使用默认数据库 [关闭]

ubuntu18.04在线安装dockernvidia-docker2与docker-compos

MySQL 服务器不以 MAMP 启动

MySQL 服务器不以 MAMP 开头

prometheus 服务器抛出数据不以 #EOF 结尾

sonar V.4.3.1 不以 postgresql 开头