Пружинный ботинок в докере с двумя банками - PullRequest
0 голосов
/ 07 февраля 2019

Задача - расширить существующее приложение весенней загрузки, переопределить некоторые компоненты и развернуть его при весенней загрузке.

Используется язык Kotlin.Итак, у меня есть приложение весенней загрузки (APP-A)

    @SpringBootApplication
    open class MyApp { 
        ... //start staff here 
    }

И у меня есть модуль (MODULE-B), который расширяет некоторую существующую логику с внедрением зависимостей

open class ExtensionModule { 
//... extension logic is here 
}

для этого модуляПружинная автоконфигурация используется.Поэтому он должен быть зарегистрирован в контейнере пружины

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.example.ExtensionModule

Когда у меня есть зависимость в pom.xml (APP-A) от MODULE-B, все работает просто отлично.Моя цель состоит в том, чтобы создать образ докера без зависимости в pom.xml, поэтому в этом случае APP-A ничего не будет знать о MODULE-B, но логика будет расширена, как в случае со старым подходом, основанным на classpath-xml контейнера контейнера Spring, который я тестировал следующимDockerfile

FROM openjdk:8-jre

ADD app-a.jar /usr/share/jvmservice/app-a.jar
ADD module-b.jar /usr/share/jvmservice/module-b.jar

ENTRYPOINT exec /usr/bin/java $JAVA_OPTS -jar /usr/share/jvmservice/app-a.jar

В результате приложение app-a успешно запущено, но изменения из модуля-b не применяются.Можно ли составить образ докера с двумя банками в одном контейнере пружины без явной зависимости?

1 Ответ

0 голосов
/ 07 февраля 2019

Вам необходимо добавить module-b.jar к пути к классам, используйте для этого следующее:

FROM openjdk:8-jre

COPY app-a.jar /usr/share/jvmservice/app-a.jar
COPY module-b.jar /usr/share/jvmservice/ext/module-b.jar

ENTRYPOINT exec /usr/bin/java $JAVA_OPTS -Dloader.path="/usr/share/jvmservice/ext/" -jar /usr/share/jvmservice/app-a.jar

Для получения дополнительной информации см. Запуск исполняемых банок

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