小言_互联网的博客

docker+jenkins集成部署

442人阅读  评论(0)

Linux配置Git

卸载Centos自带的git1.7.1:
通过git –version查看系统带的版本,Centos应该自带的是git版本是1.7.1

终端输入:yum remove git

安装所需软件包

终端输入:yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc

yum install gcc perl-ExtUtils-MakeMaker

功能快捷键

(1)终端输入:`wget https://github.com/git/git/archive/v2.2.1.tar.gz`

   或者直接在浏览器器打开输入:`https://mirrors.edge.kernel.org/pub/software/scm/git/`

   选择你要下载的版本,下载后上传至Linux服务器相应路径下

(2)解压:tar zxvf v2.2.1.tar.gz

(3)终端输入:

   cd git-2.7.0
  make prefix=/usr/local/git all
  make prefix=/usr/local/git install

(4)配置环境变量

     sudo vim /etc/profile

     export PATH=$PATH:/usr/local/git/bin

保存并退出

(5)终端输入:source /etc/profile

从jenkins官网下载jenkins包

上传jenkins.war到服务器任意指定目录(下载如下图)

启动jenkins

切换到jenkins.war所在目录,执行以下命令启动jenkins

    `nohup java -jar jenkins.war --httpPort=8055 &`  (--httpPort=8055是指定端口为                      8055,也可以不要这部分,此时端口为默认端口)

访问jenkins

http://ip:8055 ,访问此地址,如果无法访问,有可能公司局域网问题,有可能是电信网 络问题,经验证,目前电信网络下无法访问。

    在下图红色所示文件中找到登录密码并登录


点Install suggested plugins

安装插件过程,如果此过程出现“Unable to connect jenkins”,请检查网络环境,也有可 能是被墙了的原因(自己想办法解决墙了的问题)

创建用户(我默认用了admin用户,点击下面Continue as admin)

点击完成

正常跳转到jenkins主页面,如果出现主页面空白或者跳转失败,找到./jenkins/config.xml文件,修改这一对标签的内容为:

这个权限对应“登录用户可以做任何事”,也可以百度查询按需修改(如能正常访问则无需这一步操作),修改后重启tomcat

修改/conf/tomcat-users.xml(应用部署的tomcat容器)

在此文件最后一个标签前添加下面内容:

username和password根据自己的需要修改定义,修改此文件后重启tomcat

安装所需要的插件

系统管理-插件管理

勾选插件,并点击下图按钮安装,

需要安装的插件:

Deploy to container、NodeJs(前端部署用)、Publisher over SSH、Maven  Integration、在下图所示位置搜索这些插件勾选并点红色框按钮安装。

全局工具配置


Git安装路径,如果不知道,可以控制台敲 whereis git查看

Node JS配置是前端构建用

点击jenkins首页面 “New任务”按钮,创建任务:


下面是配置信息截图:





以上配置信息填写完毕后点Save按钮保存

构建项目


查看构建日志,出现Success表示成功,如果失败,请根据日志及控制台信息解决问题:



到此jenkins构建成功 我们可以拿到项目构建的最新jar包(/root/.jenkins/workspace/docker-test/target/docke-test.jar),接下来就要考虑怎么把jar包自动化部署到docker容器中。

编写DockerFile文件

在项目操作的路径(/work/project)下创建Dockerfile文件

编辑Dockerfile文件内容为

#基于open jdk:8
FROM open jdk:8

#指定当前操作目录
WORKDIR  /work/project

#容器启动后执行的操作

CMD java -jar docker-test.jar

编写jenkins中打包成功后执行的shell脚本

打开jenkins中的配置选择 Pre Steps - Add post-build step - 执行shell

脚本值设置为

#操作/项目路径(Dockerfile存放的路劲)
BASE_PATH=/work/project
# 源jar路径  
SOURCE_PATH=/root/.jenkins/workspace  
#docker 镜像/容器名字或者jar名字 这里都命名为这个
SERVER_NAME=docker-test
#容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
#镜像id
IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
 
DATE=`date +%Y%m%d%H%M`
 
# 最新构建代码 移动到项目环境
function transfer(){
    echo "最新构建代码 $SOURCE_PATH/$SERVER_NAME/target/$SERVER_NAME.jar 迁移至 $BASE_PATH ...."
        cp $SOURCE_PATH/$SERVER_NAME/target/$SERVER_NAME.jar $BASE_PATH 
    echo "迁移完成"
}
 
# 备份
function backup(){
	if [ -f "$BASE_PATH/$SERVER_NAME.jar" ]; then
    	echo "$SERVER_NAME.jar 备份..."
        	cp $BASE_PATH/$SERVER_NAME.jar $BASE_PATH/backup/$SERVER_NAME-$DATE.jar
        echo "备份 $SERVER_NAME.jar 完成"
    else
    	echo "$BASE_PATH/$SERVER_NAME.jar不存在,跳过备份"
    fi
}
 
# 构建docker镜像
function build(){
	if [ -n "$IID" ]; then
		echo "存在$SERVER_NAME镜像,IID=$IID"
	else
		echo "不存在$SERVER_NAME镜像,开始构建镜像"
			cd $BASE_PATH
		docker build -t $SERVER_NAME .
	fi
}
 
# 运行docker容器
function run(){
	backup
	transfer
	build
	if [ -n "$CID" ]; then
		echo "存在$SERVER_NAME容器,CID=$CID,重启docker容器 ..."
			docker restart $SERVER_NAME 
		echo "$SERVER_NAME容器重启完成"
	else
		echo "不存在$SERVER_NAME容器,docker run创建容器..."
			docker run --name $SERVER_NAME -v $BASE_PATH:$BASE_PATH -d -p 3636:3636 $SERVER_NAME
		echo "$SERVER_NAME容器创建完成"
	fi
}
 
#入口
run    

效果检测

上步操作脚本写好保存后 点击立即构建查看日志如下图代表项目自动化打包构建成功

查看镜像


转载:https://blog.csdn.net/weixin_45559784/article/details/106554801
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场