Quarkus: Datasource '<default>': FATAL: нет записи pg_hba.conf для хоста - PullRequest
0 голосов
/ 10 июля 2020

Я написал приложение Quarkus JPA / Hibernate с PostgreSQL DB, отлично работающее с JVM - запускается с помощью задачи gradle quarkusDev. 1005 * компиляция идет нормально, но когда я запускаю собственный образ, я получаю:

14:41:23 WARN  [io.ag.pool] Datasource '<default>': FATAL: no pg_hba.conf entry for host "***.***.***.***", user "xxxxxxxxxxxxxx", database "*****", SSL on
14:41:23 WARN  [or.hi.en.jd.sp.SqlExceptionHelper] SQL Error: 0, SQLState: 28000
14:41:23 ERROR [or.hi.en.jd.sp.SqlExceptionHelper] FATAL: no pg_hba.conf entry for host "***.***.***.***", user "xxxxxxxxxxxxxx", database "*****", SSL on
14:41:23 ERROR [io.qu.application] Failed to start application: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory

Я попытался добавить файл pg_hba.conf:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             0.0.0.0/0               md5

и поместить его в

/src/main/resources

и / или в каталог собственного образа, но безуспешно.

Кроме того, я настроил ресурсы для своего собственного образа, добавив 'resources-config. json' в ' / src / main / resources ':

{
  "resources": [
    {
      "pattern": ".*\\.yaml$"
    },
    {
      "pattern": ".*\\.conf$"
    },
    {
      "pattern": ".*\\.txt$"
    },
    {
      "pattern": ".*\\.html$"
    }
  ]
}

Я добавил следующую строку в' application.yml '

quarkus:
  native:
    additional-build-args: -H:ResourceConfigurationFiles=resources-config.json

Но даже при этом pga_hba.conf не найден, и при запуске собственный образ продолжает жаловаться.

Ответы [ 2 ]

0 голосов
/ 15 июля 2020

Оказалось, что я пропустил передачу переменных окружения в исполняемый файл.

Конечно - очевидно, после того, как я понял, в чем проблема! - вам не только нужно передавать переменные среды БД при компиляции образа в машинном коде - чтобы тесты можно было запускать - но вам также необходимо передать их при запуске.

Итак, сценарий, подобный этому, решает выпуск:

#!/usr/bin/env bash
export PG_USERNAME=*****
export PG_PASSWORD=*****
./build/my-native-image.runner
0 голосов
/ 10 июля 2020

Проблема заключается в том, что pg_hba.conf используется сервером Postgres. Вам нужно найти его и добавить запись, которая будет соответствовать параметрам соединения, которые вы отправляете на сервер.

...