PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Impossibile connettersi al contenitore Docker Postgres dal contenitore Golang

Sembra che tu stia tirando fuori l'immagine invece di costruire la tua immagine.

Invece di image: golang:1.7 sostituiscilo con build: . per creare e utilizzare il tuo Dockerfile .

Inoltre potresti dover passare le variabili di ambiente postgres DB_HOST , DB_USER , DB_PASS ecc. puoi ottenerlo ma creando ad esempio docker.env file e quindi aggiungi env_file sotto la tua app go docker-compose.yml file:

Esempio docker.env :

DB_HOST=postgres
DB_USER=user
DB_PASS=pass
DB_NAME=mydb

Corretto docker-compose.yml :

version: '2'
services:
    app:
        build: .
        volumes:
          - ./:/server/http
        ports:
            - "80:8080"
        links:
            - postgres
            - mongodb
            - redis
        environment:
            DEBUG: 'true'
            PORT: '8080'
        env_file: 
          - docker.env

    postgres:
        image: onjin/alpine-postgres:9.5
        restart: unless-stopped
        ports:
            - "5432:5432"
        environment:
            LC_ALL: C.UTF-8
            POSTGRES_USER: user
            POSTGRES_PASSWORD: pass
            POSTGRES_DB: mydb

    mongodb:
        image: mvertes/alpine-mongo:3.2.3
        restart: unless-stopped
        ports:
            - "27017:27017"

    redis:
        image: sickp/alpine-redis:3.2.2
        restart: unless-stopped
        ports:
            - "6379:6379"