我有两个不同的项目spring boot和angular项目。现在,我想构建将包含两个项目的docker映像。
我检查了maven-resource-plugin
,它将角度文件复制到spring-boot /target/classes/resources directory
。
还有docker-maven-plugin
从spring-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"]
答案 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)分开是合理的,但是我认为情况并非如此。