2016-12-19 62 views
2

我正在寫一個在2個容器中dockerized的去應用程序:db和app。無法連接到碼頭集裝箱內的postgresql

同時啓動集裝箱的碼頭工人,組成了「我看到消息:撥號TCP:上127.0.0.11:53查找dbpgsql:沒有這樣的主機

DB_ENV_DB=cldb 
DB_ENV_USER=cldb 
DB_ENV_PASS=cldb 
DB_PORT_5432_TCP_ADDR=dbpgsql 
DB_PORT_5432_TCP_PORT=5432 

這裏是我的碼頭工人,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) 
} 
+0

您是否需要將端口53映射到泊塢窗圖像中? –

回答