Bry*_*den 7 postgresql ports node.js docker docker-compose
好吧所以我现在一直在寻找3-4天,我似乎无法找到我的错误的解决方案.我发现了类似的错误,有些似乎在描述我的确切问题,但没有一个解决方案有效.
我正试图让一个简单的postgres,express,节点应用程序启动并运行.我希望能够运行docker-compose up -d
并让它构建所有图像,卷等.然后我将运行一个bash脚本,它将使我的postgres数据库播种数据.但是,我一直在使用我正在使用的端口出错.我删除了所有的图像,容器,甚至重新安装了docker,但我无法弄明白.除了postgres之外,我从docker-compose中删除了所有内容,但它仍然不起作用.
version: '3'
services:
postgres:
image: postgres:10.0
volumes:
- /var/lib/postgresql/data
ports:
- '5432:5432'
Run Code Online (Sandbox Code Playgroud)
然后在我的主机上,我只是计划运行以下bash脚本.
#!/bin/bash
host="postgres.dev"
adminUser="postgres"
psql -h $host -U $adminUser -c "select 1 from pg_database where datname = 'table_name';" | grep -q 1 || psql -h $host -U $adminUser -f ./"$(dirname $0)"/init-local-db.sql
Run Code Online (Sandbox Code Playgroud)
我知道这种方法应该有效,因为我在一个工作项目之后对它进行模式制作......这对他们有效.但这是我得到的错误:
ERROR: for pg-db Cannot start service postgres: driver failed programming external connectivity on endpoint pg-db (b3e5697cd563264250479682ec83d4a232d0d4bd679a787ad2089e944dda9e2f): Error starting userland proxy: listen tcp 0.0.0Creating test-api ... done
ERROR: for postgres Cannot start service postgres: driver failed programming external connectivity on endpoint pg-db (b3e5697cd563264250479682ec83d4a232d0d4bd679a787ad2089e944dda9e2f): Error starting userland proxy: listen tcp 0.0.0.0:5432: bind: address already in use
ERROR: Encountered errors while bringing up the project.
Run Code Online (Sandbox Code Playgroud)
我知道有些人说只是改变端口号,'5433:5432'
但我的问题是,当你默认安装postgres时它的端口是5432,我知道没有必要改变它(因为工作项目没有).有什么想法吗?
更新(第二天早上):
好吧,我仍然不知道为什么首先出现错误,因为我使用了lsof -i tcp:5432(以及netstat)并且没有出现使用该端口.我把我的电脑置于暂停模式并上床睡觉.早上我醒来,把我的postgres版本改为9.6,看看是不是这样,一切正常.然后我将其切换回postgres 10.0并再次一切正常.希望它不会再次弹回,但我不知道为什么它首先出现.
Ser*_*nko 22
您可能会遇到此错误的原因只有一个.您已在本地计算机上安装PostgreSQL并且它正在运行,占用端口5432.
您有以下选择:
在本地计算机上禁用(并从启动中删除)PostgreSQL. - 您的Docker Compose将运行.
sudo service postgresql stop
sudo update-rc.d postgresql disable
Run Code Online (Sandbox Code Playgroud)在docker-compose中使用不同的端口.应用'5433:5432'没有错.docker-compose的其他服务将通过5432端口连接到postgres.从本地机器,您将能够通过localhost:5433处理postgres.
归档时间: |
|
查看次数: |
6543 次 |
最近记录: |