Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.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
Postgresql容器未在docker compose文件中运行-为什么?_Docker_Docker Compose_Dockerfile - Fatal编程技术网

Postgresql容器未在docker compose文件中运行-为什么?

Postgresql容器未在docker compose文件中运行-为什么?,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,我正在试图弄清楚为什么我的项目中没有运行postgresql会出现错误。 它不是通过Flask连接的,也不是在我尝试使用命令通过bash访问它时连接的 docker compose运行postgres bash然后psql返回错误: bash-5.0# psql psql: could not connect to server: No such file or directory Is the server running locally and accepting

我正在试图弄清楚为什么我的项目中没有运行postgresql会出现错误。 它不是通过Flask连接的,也不是在我尝试使用命令通过bash访问它时连接的
docker compose运行postgres bash
然后
psql
返回错误:

bash-5.0# psql
psql: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
我尝试运行
--force recreate
并删除所有废弃的孤立容器,但这似乎不起作用。同样,我通过卸载本地postgresql并删除所有文件来确保它不会干扰我的本地postgresql安装。在这件事上我感到很困惑

这是我的docker撰写文件:

version: "3"

services:

  webapp:
    build: .
    container_name: webapp
    ports:
      - "5000:5000"

  postgres:
    image: postgres:11-alpine
    container_name: postgres
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_DB=tmp
      - POSTGRES_USER=tmp
      - POSTGRES_PASSWORD=tmp_password
    volumes:  # Persist the db data
      - database-data:/var/lib/postgresql/data


volumes:
  database-data:


感谢您的帮助。

请尝试下面的
docker compose.yml
,其中
依赖于
健康检查
链接
被添加为
web
服务依赖于
db
服务

version: "3"
services:
  webapp:
    build: .
    container_name: webapp
    ports:
      - "5000:5000"
    links:
      - postgres
    depends_on:
      - postgres

  postgres:
    image: postgres:11-alpine
    container_name: postgres
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_DB=tmp
      - POSTGRES_USER=tmp
      - POSTGRES_PASSWORD=tmp_password
    volumes:  # Persist the db data
      - database-data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  database-data:


因此,我在尝试设置邮件服务器后发现了这个问题。基本上,我已经在本地机器上安装了postgresql,然后当我将其移动到docker时,我忘记卸载它。当我从本地计算机卸载postgresql时,docker db现在可以工作。

您的web应用程序是django?Flask。但我不认为这会有什么不同。好吧,我会试试看。我以前有依赖项,但没有条件、healthcheck或links。Get
合成文件“/docker Compose.yml”无效,因为:services.webapp.dependens\u on包含无效类型,它应该是一个数组。编辑了我的答案后,出现了一个输入错误。docker compose运行postgres bash,然后psql将给出相同的错误。发生了什么事:(?我还用
netstat-anp | grep“5432”
检查了我的本地机器,没有任何东西在使用该端口。我正在编辑这个。我看到
上的
链接被贬值,所以我转而使用
网络
实际上是同一个问题。hmmmm