spring 如何使用Docker连接到postgresql?

rur96b6h  于 2023-04-04  发布在  Spring
关注(0)|答案(1)|浏览(134)

我试图连接到数据库,但每次我得到一个错误,我不能连接到数据库。
Docker ps -a看起来像这样:

ea68340fce5c   postgres:latest   "docker-entrypoint.s…"   2 minutes ago   Exited (1) 2 minutes ago                                       java-postgres
7bcdd7519678   springshop-app    "java -jar app.jar"      2 minutes ago   Up 2 minutes               0.0.0.0:8080->8080/tcp   java-app

我的docker-compose:

version: '3'

services:
  postgres:
    image: 'postgres:latest'
    container_name: 'java-postgres'
    environment:
      - 'POSTGRES_USER=postgres'
      - 'POSTGRES_PASSWORD=9567'
      - 'POSTGRES_DB=shop_db'

  app:
    build: ./
    container_name: 'java-app'
    ports:
      - '8080:8080'

我尝试写端口'5432:5432',但每次他们给予一个错误,端口是忙碌的.另一个端口也尝试,例如5050:5432.
我的停靠文件:

FROM openjdk:19

ADD build/libs/*.jar app.jar

ENTRYPOINT ["java", "-jar", "app.jar"]

Logs:org.postgresql.util. PSQLExException:连接尝试失败。
2023-04-03T08:35:55.811Z WARN 1 --- [nio-8080-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper:SQL错误:0,SQL状态:08001 2023-04-03T08:35:55.812Z ERROR 1 --- [nio-8080-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper:连接尝试失败。2023-04- 03 T08:35:56.034Z WARN 1 --- [nio-8080-exec-3] .w.s.m.s.DefaultHandlerExceptionResolver:已解决[出现错误信息]不支持请求方法'GET']

ubof19bj

ubof19bj1#

我不能得到错误的确切原因,但我挑起一些点,你可以尝试修复错误:根据您提供的错误消息,您的应用程序似乎无法连接到PostgreSQL数据库。以下是您可以尝试解决此问题的一些方法:
1.确保PostgreSQL容器正在运行:您可以使用命令docker ps来检查容器是否正在运行。如果它没有运行,您可以使用命令docker-compose up -d postgres启动它。
1.检查PostgreSQL容器的日志:你可以使用命令docker logs java-postgres来检查PostgreSQL容器的日志。查找与数据库连接相关的任何错误消息。
1.检查连接字符串:确保应用程序使用正确的连接字符串连接到数据库。它应该类似于jdbc:postgresql://:5432/shop_db。替换为PostgreSQL容器的名称。
1.检查防火墙设置:请确保计算机上的防火墙设置没有阻止与数据库的连接。您可以尝试暂时禁用防火墙,看看它是否能解决问题。
1.检查数据库凭据:确保应用程序配置中指定的数据库凭证(用户名和密码)与docker-compose.yml文件中指定的一致。

相关问题