Docker Postgres连接问题

时间:2019-03-13 14:47:10

标签: ruby-on-rails docker docker-compose dockerfile

在尝试打开localhost:3000时,我遇到了带有postgres的Docker码头以下问题

could not connect to server: Connection refused Is the server running on host 
"localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432? could 
 not connect to server: Cannot assign requested address Is the server running 
 on host "localhost" (::1) and accepting TCP/IP connections on port 5432?

我正在使用的docker-compose文件下面

 version: '3'
 volumes:  
 postgres_data: {} 

 services:
 redis:
 image: redis
 command: redis-server
 ports:
  - "6379:6379"
app:    
build:      
  context: .      
  dockerfile: /Users/admin/git/generic/myapp/docker/app/Dockerfile 
depends_on:      
  - db  
ports:      
  - 3000:3000
db:    
image: postgres 
volumes:      
  - postgres_data:/var/lib/postgresql/data
web:    
build:      
  context: .      
  dockerfile: /Users/admin/git/generic/myapp/docker/web/Dockerfile  
depends_on:      
  - app    
ports:      
  - 80:80

任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

可能您必须在docker-compose中定义5432端口。

    ports:      
     - 80:80
     - 5432:5432

答案 1 :(得分:0)

对docker-compose.yml使用以下配置:

version: '3.5'

  services:

    redis:
       image: redis
       command: redis-server
       ports:
         - "6379:6379"

    app:    
       build:      
         context: .      
         dockerfile: /Users/admin/git/generic/myapp/docker/app/Dockerfile 
       depends_on:      
         - db  
       ports:      
         - "3000:3000"  
       networks:
         services-network:
           aliases:
             - app

    web:    
      build:      
        context: .      
        dockerfile: /Users/admin/git/generic/myapp/docker/web/Dockerfile  
      depends_on:      
        - app    
      ports:      
        - "80:80"
      networks:
        services-network:
          aliases:
           - web
    db:
      image: postgres 
      volumes:      
       - postgres_data:/var/lib/postgresql/data
      environment:
       - POSTGRES_USER=postgres
       - POSTGRES_PASSWORD=postgres
       - POSTGRES_DB=db_name
      expose:
       - "5432"
      networks:
        services-network:
          aliases:
            - db

volumes:  
 postgres_data:

networks:
  services-network:
    name: services-network
    driver: bridge