Перезарядка Spring Boot в контейнере docker не работает - PullRequest
0 голосов
/ 09 января 2020

У нас есть проект Spring boot gradle, работающий внутри контейнера docker, который использует том docker. Функция живой перезагрузки Spring devtools используется со следующими свойствами.

spring.devtools.restart.enabled=true
spring.devtools.restart.additional-paths=.
spring.devtools.restart.additional-exclude=src/main/java/**

Мы используем том docker для изменения исходных файлов внутри контейнера. Файл src/main/resources/reload-trigger.txt будет обновляться всякий раз, когда потребуется оперативная перезагрузка.

Журналы контейнеров показывают, что перезагрузка работает, но изменения не влияют. При перезапуске контейнера отражаются изменения.

Например, шаги:

  • Создание файла контроллера внутри тома с помощью API GET и обновление файла триггера
  • GET API не работает в почтальоне
  • Остановлен и запущен контейнер
  • Теперь API работает

Dockerfile

FROM gradle:5.6.2-jdk8
WORKDIR /app
COPY . /app
RUN ./gradlew getDeps
EXPOSE 8000
CMD ["gradle", "bootRun", "-PskipDownload=true"]
...