• 对于注定会优秀的人来说,他所需要的,只是时间----博主
  • 手懒得,必受贫穷,手勤的,必得富足----《圣经》
  • 帮助别人,成就自己。愿君在本站能真正有所收获!
  • 如果你在本站中发现任何问题,欢迎留言指正!
  • 本站开启了防爆破关小黑屋机制,如果您是正常登录但被关进小黑屋,请联系站长解除!

<二十七>Jenkins实战应用–Jenkins+docker+gitlab将应用部署到docker

Jenkins eryajf 1个月前 (11-13) 38°C 已收录 2个评论
本文预计阅读时间 4 分钟

*系列汇总*

这是一个系列文章,大大小小到今天惊然发现竟然已经累计二十篇了,也就不得不做一个小汇总。回想当初写第一篇文章的时候,就已经决心事无巨细,一应认真的走下来,回头遮望,看着皇皇这么多文章,一股强烈的成就感就此油然而生,于是便有了这些汇总整理。在这个过程当中,好像也帮助过不少的人,这是让我尤其开心的事情,同时也结识了一些志同道合的朋友,再没有比这更让人觉得愉悦的事情啦!也希望以后写出更多类似的系列文章。

文章汇总地址如右:Jenkins 入门教程。

如果相中哪个,点击进去便是。希望正在读这段话的你能够在这个小系列中获得自信以及喜悦!

1,准备工作。

所有的准备工作完成之后,就可以通过这个优秀的 Jenkins 进行项目构建了。

这里使用一个开源的 java 语言博客系统 halo 做测试。

项目地址:https://github.com/ruibaby/halo

同样,为了测试,可以先将项目 fork 到自己的 github 空间里,然后就能通过 Jenkins 来进行构建了。

这里所使用的 Jenkins,是上一篇文章当中自己构建成熟的镜像所跑起来的容器,本实验也是基于这个容器所做的。

这里所说的上一篇文章,如果您还没有看,那么建议先看一下,否则有可能会导致跟随本文构建而最终失败。那篇文章如下:

docker学习笔记–利用Dockerfile创建一些基础镜像 |坐而言不如起而行! 二丫讲梵

在学习docker的过程中,我们会经常与镜像打交道,同时也要经常与网络打交道,下载远程镜像的快慢几乎都是靠人品来支撑,这样以来,学习的效率会大大降低,而且远程的一些镜像,很多时候未必适合自己使用的需求,因此,制作一些基础镜像用于日常使用,就显得非常必要了。 本文当中所需要用到的一些Dockerfile,我已经上传在个人的GitHub,可以下载参考,以助于理解。 1,构建CentOS7.4。 需要用到四个文件。 [root@

2,进入配置。

其他比较简单的步骤就不细说了,直奔主题。

创建一个项目,如图:

就是这么简单,这里直接贴出其中所用到的 shell 内容:

A=$BUILD_ID
B=`expr $BUILD_ID - 1`

source /etc/profile

project="halo"

cd $WORKSPACE && mvn clean package -Pprod

docker stop $project && sleep 10

docker rm $project && sleep 5

docker rmi $project:$B && sleep 5

cd $WORKSPACE/target/dist/halo

cat > halo.ini << EOF
[program:halo]
command=/usr/local/jdk1.8.0_144/bin/java -jar  /opt/halo/halo-latest.jar
numprocs=1
autostart=true
autorestart=true
startsecs=60
EOF

cat > Dockerfile << EOF
FROM       idocker.io/eryajf/jdk:1.8
MAINTAINER eryajf <Linuxlql@163.com>

ADD     .  /opt/halo

ADD   halo.ini /etc/supervisor/conf.d

EXPOSE 8090
EOF

docker build -t $project:$A . && sleep 5

docker run -d --name $project -p 8090:8090 $project:$A

简单说明,因为这个是直接在本机进行的试验部署,因此所有的命令也都全部写在这里来了,执行完成之后,应用也会部署在本机当中。

首先对项目进行打包,接着先停掉服务,然后通过 Dockerfile 生成新的镜像,然后启动服务。

如果是异地部署,那么只需将镜像推往私服,然后调用一个远程脚本,进行应用的部署即可。

3,结果验证。

我们构建一下,看看效果如何:

这里看到构建已经成功了,那么去服务器上看看情况如何:

[root@localhost halo]$docker images
REPOSITORY                                              TAG                 IMAGE ID            CREATED             SIZE
halo                                                    21                  0ddee68e88db        13 minutes ago      955 MB

[root@localhost halo]$docker ps
CONTAINER ID        IMAGE                             COMMAND                  CREATED             STATUS              PORTS                              NAMES
2be8bf8a32e4        halo:21                           "/usr/bin/supervis..."   14 minutes ago      Up 14 minutes       22/tcp, 0.0.0.0:8090->8090/tcp     halo

看上去貌似已经没有问题了,那么访问一下这个应用:

填入一些基本信息,install 安装一下,然后进入后台界面:

接着也可以去看一下前台界面:

到这里,基本上 Jenkins 与 docker 结合的示例就完成了,有些东西我们还没做之前,会想象中觉得很难,但是当你真的对其一一了解之后,会发现其实并没有那么复杂。


weinxin
扫码订阅,第一时间获得更新
微信扫码二维码,订阅我们网站的动态,另外不定时发送 WordPress 小技巧,你可以随时退订,欢迎订阅哦~

二丫讲梵 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明<二十七>Jenkins实战应用–Jenkins+docker+gitlab将应用部署到docker
喜欢 (1)
[如果想支持本站,可支付宝赞助]
分享 (0)
eryajf
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. FROM idocker.io/eryajf/jdk:1.8 这个镜像有supervisor自启动功能,是不是也要自己制作一个?菜鸟问一个。
    luguo2018-12-04 10:12 回复 Windows 10 | Chrome 68.0.3440.106