【发布时间】:2017-05-04 14:56:16
【问题描述】:
我正在编写一个在 2 个容器中 dockerized 的 go 应用程序:db 和 app。
在启动容器 'docker-compose up' 时,我看到消息:dial tcp: lookup dbpgsql on 127.0.0.11:53: no such host
DB_ENV_DB=cldb
DB_ENV_USER=cldb
DB_ENV_PASS=cldb
DB_PORT_5432_TCP_ADDR=dbpgsql
DB_PORT_5432_TCP_PORT=5432
这是我的 docker-compose.yml
version: '2'
services:
server:
hostname: app
image: golang:1.7.3-alpine
build: ./server/
privileged: true
container_name: server
command: go run server.go
volumes:
- ../src/:/go/src/
- ../server.go:/go/server.go
links:
- db:db
ports:
- '8080:8080'
env_file: environment
db:
hostname: dbpgsql
image: postgres:latest
container_name: db
environment:
POSTGRES_USER: cldb
POSTGRES_PASSWORD: cldb
POSTGRES_DB: cldb
ports:
- '5432:5432'
volumes:
- ./data:/docker-entrypoint-initdb.d
执行 DB.Ping() 时应用程序在此处失败:
func InitDB(dataSourceName string) {
var err error
DB, err = sql.Open("postgres", dataSourceName)
if err != nil {
log.Panic(err)
}
if err = DB.Ping(); err != nil {
log.Panic(err)
}
DB.SetMaxIdleConns(100)
}
【问题讨论】:
-
你不需要在你的 docker 镜像中映射端口 53 吗?
标签: postgresql go docker docker-compose