无法使用 docker 将 PostgreSQL 数据库连接到 Spring

Posted

技术标签:

【中文标题】无法使用 docker 将 PostgreSQL 数据库连接到 Spring【英文标题】:Can't connect PostgreSQL db to Spring with docker 【发布时间】:2022-01-04 02:56:19 【问题描述】:

我在使用 docker 将我的 Spring 应用程序连接到 db 时遇到问题。有人可以给我建议有什么问题吗?

spring.datasource.url=jdbc:postgresql://localhost:5433/postgres
spring.datasource.username=postgres
spring.datasource.password=changeme

spring.datasource.hikari.connection-timeout=20000
spring.datasource.hikari.maximum-pool-size=20

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQL95Dialect
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

码头工人ps

7798a7328c2b postgres "docker-entrypoint.s…" 3 days ago Up 5 hours 5432/tcp, 0.0.0.0:5433->5433/tcp, :::5433->5433/tcp postgres_container

码头工人撰写

services:
  postgres:
    container_name: postgres_container
    image: postgres
    environment:
      POSTGRES_USER: $POSTGRES_USER:-postgres
      POSTGRES_PASSWORD: $POSTGRES_PASSWORD:-changeme
      PGDATA: /data/postgres
    volumes:
       - postgres:/data/postgres
    ports:
      - "5433:5433"
    networks:
      - postgres
    restart: unless-stopped

我在尝试运行应用程序时遇到一堆错误 Errors

【问题讨论】:

【参考方案1】:

尝试使用 postgres 服务的 container_name 而不是 localhost。

spring.datasource.url=jdbc:postgresql://postgres_container:5433/postgres

这是一个解释原因的帖子:

docker-compose.yml container_name and hostname

【讨论】:

是的,并且 container_name 并不是真正需要的。然后您可以使用postgress 而不是postgres_container

以上是关于无法使用 docker 将 PostgreSQL 数据库连接到 Spring的主要内容,如果未能解决你的问题,请参考以下文章

Docker:Springboot 容器无法连接到 PostgreSql 容器连接错误

Docker:Springboot 容器无法连接到 PostgreSql 容器

无法连接到 Hasura PostGreSQL docker 容器的 Web 套接字

Spring Boot Docker Container 无法连接到托管在 Docker 主机上的 postgresql

使用docker部署的postgresql镜像在运行一段时间后无法验证spring应用程序

Docker & PostgreSQL:初始化期间无法创建数据库名称中包含“-”的数据库