【发布时间】:2020-05-13 08:08:06
【问题描述】:
我在尝试连接到我的 postgres 实例时遇到连接错误,该实例是容器内的 postgres:11.7-alpine 映像。
我的理解:
我有一个代码库。
我有一个容器,其中在端口 5432:5432 上运行了一个 postgres:11.7-alpine 映像
我有一个容器,其中包含一个从上面第 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
【问题讨论】:
-
我猜在第一种情况下,您会尝试从 Docker 外部调用此设置。您如何在那里配置数据库连接?你得到的实际错误是什么? (Docker 中的 PostgreSQL 没有你描述的那种限制,它一次只能接受来自一个地方的连接。)
标签: docker docker-compose dockerfile docker-machine