Сборка Docker Gradlew завершается неудачно с HibernateException - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь докернизировать мое приложение с весенней загрузкой, которое использует gradle и kotlin.У меня есть Dockerfile, который выглядит следующим образом:

FROM java:8-jdk-alpine as build-and-run
WORKDIR /app
COPY . .
RUN ./gradlew build --stacktrace --scan

ENV ARTIFACT_NAME=resource-server-0.0.1-SNAPSHOT.jar
ENV APP_HOME=/app
WORKDIR $APP_HOME
COPY --from=build $APP_HOME/build/libs/$ARTIFACT_NAME .
EXPOSE 80
ENTRYPOINT ["java","-jar","/build/libs/$ARTIFACT_NAME"]

Команда ./gradlew build прекрасно работает вне докера, но как только я пытаюсь создать образ докера, она не работает:

xyz.resourceserver.ResourceServerApplicationTests > contextLoads FAILED
    java.lang.IllegalStateException
        Caused by: org.springframework.beans.factory.BeanCreationException
            Caused by: org.hibernate.service.spi.ServiceException
                Caused by: org.hibernate.HibernateException

У меня есть свойства подключения к базе данных для весенней загрузки в application.properties, поэтому я действительно не знаю, что с этим не так.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2019

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

0 голосов
/ 27 сентября 2019

Кажется, ваше соединение с базой данных не успешно.Если ваша база данных работает локально, попробуйте следующее.

Используйте параметр --network = host.Этот сетевой режим означает, что контейнер имеет прямой доступ к localhost, и теперь вы можете получить доступ к localhost: 3306.Вот команда

docker run -p 8080:8080 --network=host
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...