我的Postgres DB在Docker容器中运行。当启动容器时,它表示已准备好收听5432。
我的应用程序容器设置为依赖它。

    container_name: my_postgres_db
    image: library/postgres:latest
    network_mode: bridge
    expose:
      - 5432
    ports:
      - 5432:5432
    environment:
      - POSTGRES_USER=admin
      - POSTGRES_PASSWORD=admin
      - POSTGRES_DB=localdb
    restart: always
应用程序的配置:
    container_name: my_test_app
    depends_on:
      - db
    build:
      context: ./
      dockerfile: Dockerfile
    image: my_test_app
    ports:
      - 8080:8080
基于对类似问题的解决方案,我将数据库URL中的localhost更改为:spring.datasource.url=jdbc:postgresql://db:5432/localdb这将导致另一个错误=“未知主机异常”。即使我设法以这种方式构建应用程序,也仍然无法正常工作。日志说,Connection to localhost:5432 refused我还想念什么?
当我明显将其更改为localhost:5432并gradlew清理/构建它时,为什么它仍在听db:5432

最佳答案

只需将postgres和app中的network_mode更改为host

network_mode: host
请注意,这将忽略暴露选项,并将使用主机网络和容器网络

关于postgresql - Docker-compose无法连接到Docker postgres容器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64088055/

10-11 11:27