目录
前提条件
- 熟悉Docker、Spring Boot 、Vue基本知识
- 熟悉yaml文件基本知识,可参考:YAML 入门教程
- 掌握Docker部署Spring Boot + Vue项目方法,可参考:Docker部署Spring Boot + Vue项目
概述
本文在普通的Docker部署Spring Boot + Vue项目 的基础上进行。部署若依前后端分离版项目为例,重点在于如何使用Docker Compose的方式加快项目部署过程。
此前使用Docker部署一个Spring Boot + Vue项目,包含了4个容器:
-
MySQL
-
Redis
-
Java后端
-
Nginx前端
而稍微复杂的项目,还会有各种各样的其它中间件,需要部署的容器远不止4个。如果还像之前那样手动的逐一部署,就太麻烦了。
而Docker Compose就可以帮助我们实现 多个相互关联的Docker容器的快速部署。
Compose简介
Docker Compose 是一个用于定义和运行多容器应用程序的工具,是实现精简且高效的开发与部署体验的关键所在。
它简化了对整个应用程序栈的控制,能够通过一个易于理解的 YAML 配置文件轻松管理服务、网络和存储卷。然后,只需一条命令,就能依据配置文件创建并启动所有服务。
Docker Compose 可在所有环境中工作,包括生产、预发布、开发、测试环境以及持续集成(CI)工作流程。它还具备用于管理应用程序整个生命周期的命令,比如:
-
启动、停止和重建服务。
-
查看正在运行服务的状态。
-
流式输出正在运行服务的日志内容。
-
在某个服务上运行一次性命令。
通过使用 Docker Compose,使用一个名为 Compose 文件的 YAML 配置文件来配置应用程序的各项服务,然后使用 Compose 命令行界面(CLI)依据该配置文件创建并启动所有服务。
Compose 文件(即 compose.yaml 文件)在定义多容器应用程序方面遵循了 Compose 规范所提供的规则。
Compose文件
Compose 文件的默认路径是位于工作目录下的 compose.yaml
(首选)或 compose.yml
。为了与早期版本兼容,Compose 也支持 docker-compose.yaml
和 docker-compose.yml
。如果这两种文件都存在,Compose 会优先使用规范的 compose.yaml 文件。
你可以使用片段和扩展来保持 Compose 文件的高效性和易于维护性。
多个 Compose 文件可以合并在一起以定义应用程序模型。YAML 文件的组合是通过根据你设置的 Compose 文件顺序来追加或覆盖 YAML 元素来实现的。简单属性和映射会被最高顺序的 Compose 文件覆盖,列表则通过追加来合并。当要合并的互补文件存放在其他文件夹时,相对路径会基于第一个 Compose 文件的父文件夹来解析。由于一些 Compose 文件元素既可以表示为单个字符串也可以表示为复杂对象,所以合并操作适用于展开形式。
如果想复用其他 Compose 文件,或者将应用程序模型的部分内容提取到单独的 Compose 文件中,也可以使用 “include”。如果你的 Compose 应用程序依赖于由不同团队管理的另一个应用程序,或者需要与他人共享,这将非常有用。
Compose环境
安装docker时已经附带安装了docker-compose-plugin插件,