当我试图连接到我的postgres实例时,我遇到了一个连接错误,该实例是一个容器内的postgres:11.7-alpine镜像。
我的理解是,我有一个代码库。
我有一个代码库
我有一个容器,里面运行着postgres:11.7-alpine镜像,端口是5432:5432。
我有一个容器,里面有一个从上面第1点的代码库构建的镜像,运行在8000:8000端口。
在容器内部,一切都运行得很好(也就是说没有错误,postgress连接到第3点。我使用了 docker-compose up --build
当我试图启动我的代码库(第1点)时,它得到一个连接错误。我怀疑它正试图连接到postgres(第2点),但容器内的postgres已经连接到我的复制代码库(第3点)。
如何复制
docker-compose up --build
结果一切正常
然后我启动了我的代码库(第1点),它得到了一个连接错误。
期待行为
docker-compose up --build
结果一切正常然后我启动了我的代码库(第1点),也能够连接到docker容器内的postgres实例。
version: '3.6'
services:
# App Backend PostgreSQL
postgres:
container_name: sportsAppApiDb
image: postgres:11.7-alpine
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: password
POSTGRES_URL: postgres://admin:password@localhost:5432/sportsappapi
POSTGRES_DB: sportsappapi
POSTGRES_HOST: postgres
ports:
- "5432:5432"
# App Backend
sports-app-api:
container_name: sportsAppApi
build: ./
volumes:
- ./:/usr/src/sports-app-api
command: sbt run
working_dir: /usr/src/sports-app-api
ports:
- "8000:8000"
environment:
POSTGRES_URI: postgres://admin:password@postgres:5432/sportsappapi
好吧,你想连接到 postgres
从一个docker容器以及从一个正在IDE中运行的应用程序。由于你将postgres端口从容器绑定到主机上,要连接另一个应用程序,你可以使用 5432
主机的端口。
IDE中代码库的连接字符串为
postgres://admin:[email protected]:5432/sportsappapi
但这只有在以下情况下才会有效 docker-compose up --build
是启动和运行。