最近刚开始学docker和jenkins,发现结合起来还是蛮好用的。写篇文章记录一下过程。
结合dockers,jenkins,spring-boot各自的优势,结合一下,做一个简单的持续集成和部署。
安装docker
这个简单,centos7,直接使用命令:
yum install -y docker
安装mysql
建几个文件夹,用来挂在mysql容器的几个重要的文件夹,备用:
mkdir -p /home/mysql/data /home/mysql/logs /home/mysql/conf
然后docker安装mysql,直接上命令:
docker search mysql
docker pull mysql:5.7
docker run --privileged=true --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /home/mysql/conf:/etc/mysql -v /home/mysql/logs:/var/log -v /home/mysql/data:/var/lib/mysql -d docker.io/mysql:5.7
使用如下命令检查mysql是否安装好。
docker ps -a
mysql容器,一定要是up状态
进入mysql容器,设置mysql的root用户名密码
docker exec -it mysql bash
进入容器,然后命令行进入mysql服务器:
mysql -u root -p
输入容器启动时给定的密码(即前面docker run时MYSQL_ROOT_PASSWORD的变量)
最后设置root的密码(密码可以设置成其他的):
ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY '123456';
依次退出mysql客户端,mysql容器控制台。敲两次exit即可。
来张过程图:
用本地客户端连接mysql服务器。我这里用navicat:
使用docker的好处是,一台服务器可以部署好多应用。并且想停就docker stop。想启动就docker start。
如下:
至此,docker容器安装mysql5.7完毕。
部署Spring-boot项目
database-tool是我自己开发的一个工具。项目基于springboot+maven。
工具的功能是:根据一个jdbc连接,可以导出这个某个数据库的模型,导出为excel文档。目前仅支持mysql数据库。
对了,我这个项目没用到数据库,所以项目中不用配置jdbc连接。主要是这个工具是针对mysql数据库的工具而已。
其他不解释了,直接上代码:
https://gitee.com/cspkwww/database-tool
这里使用docker容器方式部署。(这里没用到docker-registry,证书太麻烦,自己玩的话,不需要)
项目中写好Dockerfile,如下图:
安装jenkins(安装jenkins简单,这里我就不重复了。我用的是war包,因为docker版本的jenkins版本有点低)
顺带着安装maven,git,jdk等等杂七杂八的东西。。。。
jenkins部署项目,主要几个地方贴出来:
第一步:git拉代码:
第二部:maven执行命令(直接用jenkins的maven插件,怎么简单怎么来)
第三步:docker打包成镜像(用到之前的Dockerfile,手敲命令,还能定义变量)
这里要注意的时候,第一次部署的时候,因为没有镜像,因此要把 docker rm,docker rmi这些命令屏蔽,直接命令前加#好就行。如图:
第四步:save
第五步:部署
看到SUCCESS就好了。
最后看结果:
http://10.250.100.35:8880/doc.html
看新建好的mysql数据库,已经内置了几个数据库:
试试用我的工具导出mysql这个数据库的模型:
这里安利一下,用的是某大神的swagger的ui,非常好用,github地址:
https://github.com/xiaoymin/Swagger-Bootstrap-UI
好了,好了,回到主线:
先把入参都写好:
额。。。发现没有导出文件按钮。。。尴尬。。。。。
没事,用spring的swagger-ui。
浏览器网址改成(项目中两个ui都能用):
http://10.250.100.35:8880/swagger-ui.html
这个ui功能比较好,点击“Download file”下载导出文件。
最后文件内容如下:
第一次体验docker和jenkins,还是不错的。写篇文章记录下