【发布时间】:2022-11-29 00:50:11
【问题描述】:
我正在尝试使用数据库从节点 bash 向节点后端发出请求,所以首先我启动了这个 docker-compose:
version: '3.9'
services:
backend:
build: .
ports:
- '2000:2000'
db:
image: 'postgres'
environment:
POSTGRES_PASSWORD: '12345'
POSTGRES_DB: 'attendancebd'
它运作良好。我只是在节点中创建一个 bash,当我像这样卷曲时:
curl backend:2000/info/teachers
它为我提供了数据库中的正确 JSON。
但是当我使用这个 docker compose 时:
version: '3.9'
services:
server:
build: .
ports:
- '5000:5000'
networks:
serveranddb:
aliases:
- server_host
serverandbash:
aliases:
- server_host
db:
image: 'postgres'
environment:
POSTGRES_PASSWORD: '12345'
POSTGRES_DB: 'attendancebd'
networks:
serveranddb:
aliases:
- db_host
mybash:
build: ./bash
stdin_open: true
tty: true
networks:
serverandbash:
aliases:
- bash_host
networks:
serveranddb:
name: server_db
driver: bridge
ipam:
driver: default
serverandbash:
name: server_bash
driver: bridge
ipam:
driver: default
我从 bash 做同样的卷曲:
curl server_host:2000/info/teachers
它向我发送消息:
{"message":"password authentication failed for user \"postgres\""}
而且环境是一样的,同样的密码,同样的数据库,为什么会这样呢?
【问题讨论】:
-
查看数据库服务器日志文件
标签: postgresql docker docker-compose