前言
近一、两年,SpringBoot和Docker可以说非常的火热啊,而早在2015年的时候我就弄过一下Docker,不过由于职位和跳槽等种种原因,2016年就很少搞了,不过现在再捡起来也是很容易的。而SpringBoot我也是最近才开始学的,不知道有木有落伍哈。微服务概念的提出的同时也把这几个技术带到了高潮,现在就来实践一把。
环境搭建
- OS Debian 8.7
- Jenkins 2.32.2
- SpringBoot 1.5.1.RELEASE
- Docker 1.13.0
- Gitlab 8.16.4
其中Gitlab主要是用来存放代码的仓库以及触发构建。关于这个怎么集成可以查看我先前写的一篇博文 。
Jenkins、Gitlab的安装在上面那篇博文中有说明,Docker的安装配置在我之前写的另一篇博文中也有说到,这里就不过多介绍了。
SpringBoot项目骨架可以在官方网站上进行下载: 这个也不多说了。。。
项目
整个项目以一个springboot-jpa为示例,最后面会给出源码,详细的说明可以参看源码吧。 项目结构如下:
其中Dockerfile为构建docker镜像的脚本,在这里我使用的是自己制作的私服镜像,如果要在公网上使用可以打开注释换一个,关于也可以参看我之前的那篇博文。 项目根目录中的build.sh为打包构建启动容器的脚本,在jenkins项目构建步骤中可以直接执行该脚本。
项目resources目录中的schema.sql为启动应用时初始化创建表结构的文件,data.sql为填充数据表内容的文件,这个仅为测试使用。SpringBoot会自动调用这个2个文件的,我们不用管。
项目代码很简单,好像也没什么好说的哈,数据库源的配置都在application.properties
文件中,如果要测试使用的话需要替换下数据库源,其他的看下代码就行了。
Jenkins配置
创建jenkins项目,输入项目名,选择自由风格。配置需要注意的只有两点,一个是:源码管理,二个是:构建的步骤。
源码管理
我们这里使用的是Gitlab作为源码管理,所以选择Git,输入远程仓库名和用户认证。这个没有配置正确是无法从远程仓库下载源码的,提示权限问题。关于认证的配置也请参看我之前的博文,这里不做过多的详细介绍了。
构建
构建步骤也很简单,直接执行项目根目录中的那个构建脚本就行了。 这里需要注意的是环境变量问题,我是将JDK和Maven等工具变量都写在
/etc/profile
文件中的,内容很简单,在文件最后面添加以下内容,这个根据不同的环境进行配置即可:
# Java
export JAVA_HOME=/opt/jdk1.8.0_111
export PATH=$JAVA_HOME/bin:$PATH
# Maven
export MAVEN_HOME=/opt/apache-maven-3.3.9
export PATH=$PATH:$MAVEN_HOME/bin
这里需要注意:默认Docker命令只能root用户使用,jenkins用户是没有权限使用的,我们可以将jenkins用户加入docker组中,然后再断开、注销、连接就可以了。
将jenkins用户添加进docker组
$ sudo gpasswd -a jenkins docker
push上传
构建完成后,还可以选择push上传镜像,这个需要先登录才行。代码在build.sh
构建脚本中有,我这里使用的是私服,可以根据需要进行修改。
后序
大概的步骤就这么些,实际公司内操作可能没这么简单,这里仅作为学习参考使用。源码:
参考文档:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/2043.html