如何构建结合了角度启动和Spring Boot应用程序的Docker映像?

时间:2019-03-09 19:15:08

标签: angular spring-boot docker dockerfile

我有两个不同的项目spring boot和angular项目。现在,我想构建将包含两个项目的docker映像。 我检查了maven-resource-plugin,它将角度文件复制到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"]

1 个答案:

答案 0 :(得分:0)

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

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

所示

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

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

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