【发布时间】:2019-12-23 17:27:30
【问题描述】:
我正在尝试使用 Postgres 为 golang 应用程序设置一个 docker。
如果我删除/评论 Postgres,go 应用程序在容器中运行良好。同样,我能够启动 Postgres 容器并登录到它。我可以做 docker-compose up。
但是当我进行 API 调用时,例如:localhost:3000/api/admin/users。它给出了错误:
error: {
"error": "+dial tcp 127.0.0.1:5432: connect: connection refused"
}
Postgres 连接字符串是这样的:
connStr := fmt.Sprintf("host=postgres user=anurag password=anu_12345 dbname=bankingapp sslmode=disable")
db, err := sql.Open("postgres", connStr)
Dockerfile
FROM golang:1.13
WORKDIR /go/src/banking-app
COPY . .
RUN go get -d -v ./...
RUN go install -v ./...
CMD ["go" , "run", "main.go"]
docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "3000:3000"
postgres:
image: "postgres"
environment:
POSTGRES_USER: 'anurag'
POSTGRES_PASSWORD: 'anu_12345'
POSTGRES_DB: 'bankingapp'
【问题讨论】:
-
您是否尝试过在 postgress 服务定义中使用端口? ``` image: postgres:latest restart: always ports: - 5432:5432
-
@Oras,我有。但我认为我不需要。 compose 默认情况下创建一个桥 n/w。另外,我可以通过网络应用成功
ping postgres
标签: postgresql docker go docker-compose go-gin