angular - 如何构建结合了 Angular 和Spring Boot应用程序的Docker镜像?

标签 angular spring-boot docker dockerfile

我有两个不同的项目spring boot和angular项目。现在,我想构建将包含两个项目的docker镜像。
我检查了maven-resource-plugin,它将 Angular 文件复制到spring-boot /target/classes/resources directory
还有docker-maven-pluginspring-boot-app构建docker镜像。

我应该同时使用两个插件的输出来创建所需的输出,还是应该更改创建docker镜像的方式?
现在我的 docker 镜像是从Spring Boot应用程序构建镜像。

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"]

最佳答案

您可以将webpack生成的wwwroot托管为Spring Boot应用程序提供的静态文件。

而是通过执行ng serve在webpack-dev上运行您的angular应用,您应该通过ng build --prod生成静态文件(我可能会拼写一些命令,从内存中写入内容)并将它们作为静态文件放置在spring boot app中,如此处https://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-boot所示

我不是 Spring 专家,但是您可以按照您说的做。当然,拥有一个仅包含前端的单独容器会很好,但是如果您的spring应用将与前端紧密 bundle 在一起,并且无法为其他服务提供api,则可以在Spring Boot服务器上使用托管angular的解决方案。

最后,您只是将html,js和css文件发送到客户端的浏览器,在此处执行代码,因此托管静态文件将不会成为负担。

如果您只想扩展后端服务以处理更大的流量,则将api与前端内容服务(即nginx,httpd)分开是合理的,但是我认为情况并非如此。

关于angular - 如何构建结合了 Angular 和Spring Boot应用程序的Docker镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55081023/

相关文章:

java - 在 mvn 包阶段将本地 Maven m2 存储库包含在 Dockerfile 中?

docker - 获取在 Docker 容器中运行的 Logstash 中的主机名

Angular TypeScript 将枚举与 Spring Boot 后端结合使用

java - 为什么 Hibernate 在使用 GenerationType.IDENTITY 策略时尝试访问 hibernate_sequence?

angular - 如果 routerLink 具有绑定(bind),为什么 routerLinkActive 不触发?

java - 如何验证 pojo 集合

spring-boot - Couchbase 的 Spring Data - 数据库中的计数元素

docker - 错误 : Cannot find module "fibers/future" in docker container

javascript - Angular 变化检测慢

javascript - 如何从 AgEditorComponent 的上下文中聚焦 ag-grid Angular 中的下一个单元格