Что такое правильный jdb c для загрузки Spring для контейнерного postgressql - PullRequest
0 голосов
/ 06 марта 2020

У меня есть загрузочное приложение Spring, которое упаковано в контейнер и опубликовано в хабе docker. У меня есть 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

Моё приложение весенней загрузки.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/mydb, так и jdbc: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 : Запуск двигателя сервлета: [Apache Tomcat / 9.0.31] 2020-03-06 09: 33: 01.997 INFO 1 --- [main] oa c. c. C. [Tomcat]. [localhost]. [/]: инициализация встроенного в Spring WebApplicationContext 2020-03-06 09: 33: 01.998 INFO 1 --- [main] osweb.context.ContextLoader: Root WebApplicationContext: инициализация завершена за 1180 мс 2020-03- 06 09: 33: 02.118 INFO 1 --- [main] из c .internal.license.VersionPrinter: Flyway Community Edition 6.0.8 от 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: возникла исключительная ситуация во время durin g инициализация контекста - отмена refre sh попытка: org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем «flywayInitializer», определенным в ресурсе пути к классу [org / springframework / boot / autoconfigure / flyway / FlywayAutoConfiguration $ FlywayConfiguration.class ]: Сбой вызова метода init; вложенное исключение: java .lang.RuntimeException: драйвер org. postgresql .Driver утверждает, что не принимает jdbcUrl, jdb c: h2: mem: testdb; DB_CLOSE_DELAY = -1; DB_CLOSE_ON_EXIT = FALSE 2020-03-06 09 : 33: 02.130 INFO 1 --- [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: ошибка при создании компонента с именем «flywayInitializer» в ресурсе пути к классу [org / springframework / boot / autoconfigure / flyway / FlywayAutoConfiguration $ FlywayConfiguration.class]: сбой вызова метода init; вложенное исключение: java .lang.RuntimeException: драйвер org. postgresql .Driver утверждает, что не принимает jdbcUrl, jdb c: h2: mem: testdb; DB_CLOSE_DELAY = -1; DB_CLOSE_ON_EXIT = FALSE в org.springframework.be .factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory. java: 1796) ~ [spring-beans-5.2.4.RELEASE.jar! /: 5.2.4.RELEASE] в org.springforsme.su AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory. java: 595) ~ [spring-beans-5.2.4.RELEASE.jar! /: 5.2.4.RELEASE] в org.springframework.ableBean . 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]

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

Внимательно прочитав исключение, вы получите ценный совет:

Ошибка вызова метода init; вложенное исключение: java .lang.RuntimeException: драйвер org. postgresql .Driver утверждает, что не принимает jdbcUrl, jdb c: h2: mem: testdb; DB_CLOSE_DELAY = -1; DB_CLOSE_ON_EXIT = FALSE 2020-03-06

Похоже, ваше приложение пытается подключиться к базе данных H2 в памяти, а не к PostgreSQL.

Возможно, вы используете разные профили для своего приложения и забыли установить производство профиль? В противном случае вы можете избавиться от зависимости H2 в вашем pom.xml / build.gradle, если вам это не нужно

0 голосов
/ 06 марта 2020

Попробуйте использовать 127.0.0.1 вместо localhost

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...