簡體   English   中英

用於容器化 postgressql 的 Spring Boot 的正確 jdbc 是什么

[英]What is the correct jdbc for Spring boot for containerized postgressql

我有一個 Spring Boot 應用程序,它被容器化並發布到 docker hub。 我有這個 docker-copmse.yml:-

version: '3.1'
services:

postgres:
  image: postgres
  container_name: postgres
  ports:
    - "5432:5432"
  environment:
    - POSTGRES_PASSWORD=postgres
    - POSTGRES_USER=postgres
    - POSTGRES_DB=mydb

profile_back:
  container_name: profile_back
  image: madsum/profile_back
  ports:
    - "8080:8080"
  depends_on:
    - postgres

我的 spring boot application.propertiese:-

#spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
spring.datasource.url=jdbc:postgresql://postgres:5432/mydb
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.show-sql=true

我不知道什么是正確的 spring.datasource.url。 我嘗試了jdbc:postgresql://localhost:5432/mydbjdbc:postgresql://postgres:5432/mydb 。兩者都給出了連接錯誤。 順便說一句,容器運行完美。 我可以通過它來驗證docker exec -it --user postgres dbpostgresql sh 我可以看到創建的數據庫。 連接它的正確方法是什么?

更新的問題:-

我正在使用飛行路線。 這是現在的例外:-

ound 1 JPA 存儲庫接口。 2020-03-06 09:33:01.939 INFO 1 --- [main] osbwembedded.tomcat.TomcatWebServer:Tomcat 初始化端口:8080 (http) 2020-03-06 09:33:01.949 INFO 1 -- - [main] o.apache.catalina.core.StandardService : 啟動服務 [Tomcat] 2020-03-06 09:33:01.949 INFO 1 --- [main] org.apache.catalina.core.StandardEngine : 啟動 Servlet 引擎: [Apache Tomcat/9.0.31] 2020-03-06 09:33:01.997 INFO 1 --- [main] oaccC[Tomcat].[localhost].[/] : 初始化 Spring 嵌入式 WebApplicationContext 2020-03-06 09 :33:01.998 INFO 1 --- [ main] osweb.context.ContextLoader : Root WebApplicationContext: 初始化在 1180 ms 2020-03-06 09:33:02.118 INFO 1 --- [ main] ofcinternal.license.VersionPrinter : Flyway 社區版 6.0.8 by Redgate 2020-03-06 09:33:02.124 INFO 1 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - 開始... 2020-03-06 09:33 :02.127 WARN 1 --- [main] ConfigServletWebServerApplicationContext : 上下文初始化期間遇到異常 -取消刷新嘗試:org.springframework.beans.factory.BeanCreationException:在類路徑資源[org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]中定義名稱為“flywayInitializer”的bean創建錯誤:初始化方法調用失敗; 嵌套異常是 java.lang.RuntimeException: Driver org.postgresql.Driver 聲稱不接受 jdbcUrl, jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE 2020-03-06 09:33:02.130 - INFO1 -- [main] o.apache.catalina.core.StandardService : 停止服務 [Tomcat] 2020-03-06 09:33:02.141 INFO 1 --- [main] ConditionEvaluationReportLoggingListener :

啟動 ApplicationContext 時出錯。 要顯示條件報告,請在啟用“調試”的情況下重新運行您的應用程序。 2020-03-06 09:33:02.145 錯誤 1 ​​--- [main] osboot.SpringApplication:應用程序運行失敗

org.springframework.beans.factory.BeanCreationException:在類路徑資源[org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]中定義名稱為“flywayInitializer”的bean創建錯誤:初始化方法調用失敗; 嵌套異常是 java.lang.RuntimeException: Driver org.postgresql.Driver 聲稱不接受 jdbcUrl, jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory。 initializeBean(AbstractAutowireCapableBeanFactory.java:1796) ~[spring-beans-5.2.4.RELEASE.jar!/:5.2.4.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595) ) ~[spring-beans-5.2.4.RELEASE.jar!/:5.2.4.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans- 5.2.4.RELEASE.jar!/:5.2.4.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.4. RELEASE.jar!/:5.2.4.RELEASE]

嘗試使用 127.0.0.1 而不是 localhost

仔細閱讀異常,給你一個寶貴的提示:

init 方法調用失敗; 嵌套異常是 java.lang.RuntimeException: Driver org.postgresql.Driver 聲稱不接受 jdbcUrl, jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE 2020-03-06

因此,您的應用程序似乎嘗試連接到內存中的 H2 數據庫而不是 PostgreSQL。

您是否可能為您的應用程序使用不同的配置文件而忘記設置生產配置文件? 否則,如果您不需要它,您可以擺脫pom.xml / build.gradle中的 H2 依賴項

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM