安装jenkins
Jenkins介绍
Jenkins是一个广泛用于持续构建的可视化web工具,可用于自动化与构建、测试、交付或部署软件相关的各种任务。
可以通过安装包、tomcat、java、docker方式进行安装使用
官方地址:https://jenkins.io/
Jenkins下载安装
这里通过tomcat来启动Jenkins
下载
到官网https://jenkins.io/download/ 下载war包
部署到tomcat
复制war包到tomcat的webapps目录下,启动tomcat
解锁
访问ip:port/jenkins网页,根据提示解锁Jenkins,把相应的文件内容到页面
$ cat /Users/Shared/Jenkins/Home/secrets/initialAdminPassword
xxxxxxxxx
设置用户
解锁成功后,跳转到设置用户页面,设置用户名密码
安装默认插件
然后提示安装插件,选择默认的安装,等待安装完成。有些插件可能安装失败,提示要求升级最新版本Jenkins,升级成功后可以安装成功。
全局配置
点击 >系统设置>全局工具配置
配置maven、JDK、Docker、git
配置前先在centos安装好maven、jdk、docker,然后在配置时选对版本号及安装路径
springboot项目
代码
项目地址:https://gitee.com/yimingkeji/docker-springboot
Dockerfile内容:
#FROM openjdk:8-jdk-alpine
FROM hub.c.163.com/dwyane/openjdk:8
VOLUME /tmp
ADD docker-springboot-1.0-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
然后上传到自己的git地址
使用Jenkins部署项目到docker
在构建步骤中,添加2个步骤
-
1.
顶级maven选择maven版本(上面的全局配置中配的maven),添加maven打包命令clean install -Dmaven.test.skip=true
-
2.
执行shell添加shell:#!/bin/bash -il
mvn docker:build
echo "当前docker 镜像:"
docker images | grep dockerspringboot
echo "启动容器----->"
docker run -p 8001:8001 -d dockerspringboot
echo "启动服务成功!"
执行构建并启动服务
上面配置完成后,到Jenkins主页,选择配置好的项目,菜单中点击立即构建
改造shell脚本
如果下次构建该项目的时候,docker镜像和服务已存在,需要先删除镜像和服务
# 先删除之前的容器
echo "remobe old container"
docker ps -a | grep dockerspringboot | awk '{print $1}'| xargs docker rm -f
# 删除之前的镜像
echo "romove old image"
docker rmi dockerspringboot
# 构建镜像
mvn docker:build
# 打印当前镜像
echo "current docker images"
docker images | grep dockerspringboot
# 启动容器
echo "start container"
docker run -p 8001:8001 -d dockerspringboot
# 打印当前容器
echo "current container"
docker ps -a | grep dockerspringboot
echo "star service success!"
输出日志:
+ echo 'current docker images'
current docker images
+ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dockerspringboot latest 8c9f93a324c0 Less than a second ago 657MB
<none> <none> 3f24ff705b46 2 hours ago 657MB
<none> <none> e276f4ef3cc5 2 days ago 657MB
<none> <none> 02b677ad12e1 2 days ago 657MB
nginx latest dbfc48660aeb 4 weeks ago 109MB
mongo latest a41c82c0998a 2 months ago 380MB
redis 3.2 e2e6164a20de 4 months ago 76MB
hub.c.163.com/library/nginx latest 46102226f2fd 19 months ago 109MB
mysql 5.7 9e64176cd8a2 19 months ago 407MB
hub.c.163.com/library/mysql 5.7 9e64176cd8a2 19 months ago 407MB
hub.c.163.com/dwyane/openjdk 8 96cddf5ae9f1 2 years ago 641MB
+ echo 'start container'
start container
+ docker run -p 8001:8001 -d dockerspringboot
0b79b907e9ca49831bd9259eeea2c60ec40132342b2ed3c00d4cf183756d6610
+ echo 'current container'
current container
+ docker ps -a
+ grep dockerspringboot
0b79b907e9ca dockerspringboot "java -Djava.securit..." 1 second ago Up Less than a second 0.0.0.0:8001->8001/tcp happy_johnson
+ echo 'star service success!'
star service success!
Finished: SUCCESS
参考文档:
使用jenkins部署
https://my.oschina.net/yimingkeji/blog/2878371
CentOS安装Maven
https://blog.csdn.net/cynhafa/article/details/89854936
jenkins执行shell命令提示找不到命令解决办法
https://blog.csdn.net/weixin_34304013/article/details/85987309
CentOS 7 下安装 Docker 及操作命令
https://www.linuxidc.com/Linux/2019-05/158742.htm
将本地项目上传到码云教程
https://www.jianshu.com/p/3e0b213ab03d
用传统方法将修改后的代码提交到码云
依次输入:
- git add .
- git commit -m "提交信息"
- git push
- 使用git push origin master ,将本地仓库推送到远程仓库
查看所有的容器:docker ps -a
查看容器ip:docker inspect 容器id