前话
本次是使用docker完成了一个简单的ssm项目的一键部署,既然能够写ssm了 ,那么以后就可以根据这个架子去实现其他项目架构的一键部署,也就是说你不用重复造轮子了,改了配置文件直接就能用!下次介绍如何使用docker完成一个简单的SpringBoot项目的一键部署
这里的SSM项目中所需要构建的镜像比较简单,只用到了 一般开发中用的一些组件:
1.Redis
2.Mysql
3.tomcat
为什么要使用docker?
想想自己第一次学如何部署项目的时候,什么tomcat,mysql,jdk,redis等等,各种环境,各种配置,各种坑,简直就是难受。。。如果突然有一天,你的老板要你换服务器环境啥的,如果选择重新一个一个的手动去配置这些环境的话,那就太痛苦了吧。但是如果有一种可以一键启动并且部署好所有的开发环境的技术的话,那么,你一定要选择docker!容器化部署项目利器!
docker这里不做简介,直接说docker-compose
1.Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用, Compose 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景。
2.通过Docker-Compose用户可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose解决了容器与容器之间如何管理编排的问题。
准备工作:
1.虚拟机一台(这里用的是linux,CentOS),虚拟机可以自己装,也可以租阿里云的ecs云服务器,学生套餐。(这里用的阿里云esc)。
2.服务器中已经安装好了docker和docker-compose,关于安装教程网上一堆,这里不做重复说明。
3.开发工具用的IDEA,项目骨架用的是Maven来管理
4.因为ssm项目中的Spring没有自带tomcat,所以这里的项目是直接打成War包通过dockerfile中的copy命令自动上传到容器中的tomcat的webapps目录下,然后tomcat在启动的时候就会自动运行你的项目啦。
5.一个完整的SSM项目(这里就不介绍怎么去整合SSM项目了,网上都有),最下面提供本次教程的所有源代码,包括一个简单的ssm项目用来做测试。
废话不多说,直接上重点!
整个项目的骨架,我把所有的docker文件都放在了IDEA的项目中便于大家的理解。
]
***流程:***
编写docker-compose.yml文件来编排我们整个项目中需要用到的所有依赖的镜像,通过构造这些镜像来生成一个个的实际容器为最后的一键部署做准备
这里说明一点,一个docker的镜像可以是直接从远程的docker提供的镜像仓库拉取(因为现在的docker仓库拥有非常多的可以直接用的常用开发所需要的组件的镜像),但是在实际的业务开发过程中,有些镜像是需要自己根据实际情况来自定义的,所以,这里docker给我们提供了 一个可以自己重构镜像的方式来DIY生成我们想要的镜像,即通过一个Dockerfile文件来实现重构。
1.tomcat镜像的制作:
1.1 tomcat文件夹下的Dockerfile文件
# 直接从docker提供的远程镜像仓库中拉取最新的tomcat组件
FROM tomcat
# 本镜像的制作者的信息
MAINTAINER "leo-bin" <1114011786@qq.com>
# 把该容器的时区设置为北京时区
ENV TZ=Asia/Shanghai
# 把当前文件目录下的docker-ssm.war移动到容器中tomcat自动启动的目录下
COPY ./docker-ssm.war /usr/local/tomcat/webapps/
2.mysql镜像的制作:
2.1 Dockerfile文件
这里遇到了一个坑,至今没想到是为什么,之前我这里是直接拉的mysql5.7.28版本的 ,但是弄了好久,服务确实能够启动,MySQL也能访问,但是就是没有我的要求去自动创建数据库和表,查了一下,发现,原因就是那个docker-ent