【问题标题】:How to make Angular and Spring Boot work together inside docker?如何让 Angular 和 Spring Boot 在 docker 中协同工作?
【发布时间】:2021-06-13 09:26:49
【问题描述】:

我的 Angular 前端和 Spring Boot 后端位于不同的 Github 存储库中。我是 docker 新手,我知道如何分别为两者构建 docker 映像,并且还阅读了有关 docker-compose 以集成两者的信息,但是在不同的存储库中同时拥有前端和后端组件,我不太确定如何构建一个docker-compose 结合了前端和后端 docker 镜像。

【问题讨论】:

  • 你不能用 Docker Compose 来做这件事。您需要创建一个 Dockerfile,以您希望它们的方式将两者的输出放在同一个容器中

标签: angular spring-boot docker deployment docker-compose


【解决方案1】:

假设你有一个angular:latest 和一个spring-boot:latest docker 镜像,你的前端应用在. /frontend 和后端在. /backend(那些是git 存储库)

您可以使用 Docker compose 来创建部署:

version: '3.9'
services:
  frontend:
    image: angular:latest
    volumes:
       - ./frontend:/front
    command: <the right command to serve your app>
   ... [any other useful option, like ports, etc] 

  backend:
    image: spring-boot:latest
    volumes: 
       - ./backend:/back
    command: java -jar /back/target/your.jar #or something
   .. [any useful option]

优点:快速部署以进行测试,代码随时更新

缺点:取决于您在目录中放置的内容,它可能太多,并且您会失去图像的“包装”感

其他解决方案:使用 Dockerfile 直接从 Github 创建 Docker 映像,该 Dockerfile 将应用程序的打包版本复制到映像中并启动它。您甚至可以使用 Github 操作来自动化它。

Docker 构建允许您从 Github 远程上下文构建。您可以利用它。

优势:您可以将应用打包在 docker 映像中,自给自足并准备好以自动化方式部署

缺点:不是开发时最快的解决方案(但如果你做得正确,你可能会从 CI/CD 管道中获得质量平衡),有点陡峭的学习曲线(但没那么多)

【讨论】:

  • 这对你有用吗?你找到解决办法了吗?
猜你喜欢
  • 2019-10-16
  • 1970-01-01
  • 2018-04-05
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
  • 2017-05-31
  • 2020-01-17
  • 2017-11-15
相关资源
最近更新 更多