Postgresql容器未在docker compose文件中运行-为什么?
我正在试图弄清楚为什么我的项目中没有运行postgresql会出现错误。 它不是通过Flask连接的,也不是在我尝试使用命令通过bash访问它时连接的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
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