PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Vom Golang-Container kann keine Verbindung zum Postgres-Docker-Container hergestellt werden

Sieht so aus, als würdest du ein Image ziehen, anstatt dein eigenes Image aufzubauen.

Statt image: golang:1.7 Ersetzen Sie es durch build: . um Ihr Dockerfile zu erstellen und zu verwenden .

Außerdem müssen Sie möglicherweise die Postgres-Umgebungsvariablen DB_HOST übergeben , DB_USER , DB_PASS usw. Sie können dies erreichen, indem Sie zum Beispiel docker.env erstellen file und fügen Sie dann env_file hinzu unter Ihrer Go-App docker-compose.yml Datei:

Beispiel docker.env :

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

Docker-compose.yml korrigiert:

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"