2016-11-02 6 views
-3

Ich habe eine einfache Flask-Anwendung mit einer Instanz von PostgreSQL mit Docker-Compose ausgeführt. Wie kann ich mich mit der Datenbank im Terminal verbinden?Verbinden mit PostgreSQL in einem Docker-Container ausgeführt

version: '2' 
services: 
    web: 
     build: . 
     command: python manage.py runserver 
     volumes: 
      - .:/app 
     ports: 
      - 5000:5000 
     links: 
      - postgres 
     env_file: 
      - .env 
    postgres: 
     image: postgres:9.4 
     ports: 
      - 5432:5432 
     environment: 
      POSTGRES_PASSWORD: user 
      POSTGRES_USER: password 
      POSTGRES_DB: postgresdb 
+2

Sie haben noch keinen des Code aus dem Kolben App enthielten, noch die tatsächlichen Fehler, den Sie stoßen. Diese docker-compose.yml-Datei sieht gut aus, obwohl der Abschnitt "links:" nicht erforderlich ist. – programmerq

+1

Ich möchte nur über das Terminal eine Verbindung zu meiner psql-Instanz herstellen, so dass kein Flaschencode benötigt wird ... – user1686342

Antwort

0

Ich denke, Sie müssen die Postgres über die Web-App bewegen.

version: '2' 
services: 
    postgres: 
     image: postgres:9.4 
     # container_name: 
     # - my_postgres_1 
     ports: 
      - 5432:5432 
     environment: 
      POSTGRES_PASSWORD: mysecretpassword 
      POSTGRES_USER: postgres 
      POSTGRES_DB: postgresdb 
    web: 
     build: . 
     command: python manage.py runserver 
     volumes: 
      - .:/app 
     ports: 
      - 5000:5000 
     # links: 
     # - postgres 
     env_file: 
      - .env 

Nach dem Ausführen docker-compose -d up. Sie können auf die Postgres über psql zugreifen, indem Sie diesen Docker-Befehl ausführen. Bitte setzen Sie sich Ihren Postgres Containernamen, das heißt my_postgres_1

docker run -it --rm --link my_postgres_1:postgres postgres psql -h postgres -U postgres 
Verwandte Themen