2016-11-02 67 views
-3

我有一個簡單的Flask應用程序,使用docker-compose與PostgreSQL實例一起運行。我怎樣才能連接到終端的數據庫?連接到在Docker容器中運行的PostgreSQL

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

您還沒有任何從燒瓶應用程序的代碼,也沒有你所遇到的實際錯誤的。這個docker-compose.yml文件看起來很好,儘管'links:'部分是不必要的。 – programmerq

+1

我只想通過終端連接到我的psql實例,所以不需要任何燒錄代碼... – user1686342

回答

0

我認爲你需要將postgres移動到web應用上方。

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 

運行後docker-compose -d up。您可以通過運行此Docker命令通過psql訪問postgres。請把你的Postgres容器名稱,即my_postgres_1

docker run -it --rm --link my_postgres_1:postgres postgres psql -h postgres -U postgres 
相關問題