Как создать образ докера, который сочетает в себе угловое и весеннее загрузочное приложение?

У меня есть два разных проекта spring boot и угловой проект. Теперь я хочу создать образ докера, который будет включать в себя оба проекта. Я проверил maven-resource-plugin, который копирует файлы angular в spring-boot /target/classes/resources directory. И docker-maven-plugin, который создает образ докера из spring-boot-app.

Должен ли я использовать вывод обоих плагинов для создания желаемого вывода или мне следует изменить способ создания образа докера? Теперь мой образ докера создает образ из весеннего загрузочного приложения.

FROM java:8
VOLUME /tmp
ADD gs-spring-boot-docker-0.1.0.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

Есть ли причина для того, чтобы оба были развернуты в одном контейнере? Я предлагаю развернуть в другой контейнер, создав два разных образа.

Sagar 09.03.2019 20:27

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

user1298426 09.03.2019 20:33
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
2
2 246
1

Ответы 1

Вы можете разместить wwwroot, сгенерированный веб-пакетом, в виде статических файлов, обслуживаемых вашим приложением весенней загрузки.

Вместо того, чтобы запускать ваше угловое приложение на webpack-dev, выполнив ng serve, вы должны сгенерировать статические файлы с помощью ng build --prod (я могу ошибиться в некоторых командах, записывая из памяти) и поместить их как статические файлы в приложение весенней загрузки, как показано здесь https://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-boot

Я не эксперт по весне, но вы можете сделать это, как вы сказали. Конечно, было бы неплохо иметь отдельный контейнер только с интерфейсом, но если ваше весеннее приложение будет тесно связано с интерфейсом и не будет обслуживать API для других служб, вы можете использовать решение, размещающее angular на сервере Spring Boot.

В конце концов, вы просто отправляете файлы html, js и css в браузер клиента, где код выполняется непосредственно, поэтому размещение статических файлов не будет обременительным.

Было бы разумно отделить API от внешней службы обслуживания контента (например, nginx, httpd), если вы хотите масштабировать только внутреннюю службу для обработки большего трафика, но я думаю, что здесь это не так.

Другие вопросы по теме