前言:最近想学习一下通过Jenkins实现自动化部署,源代码管理器用的是GitHub。如有需要的伙伴们可以尝试以下相关材料,有所了解可忽略。
CentOS下部署.NetCore
CentOS下使用Docker方式部署.NetCore
让我们开始进入正题,开始我们的自动化部署踩坑之路,希望整理后分享出来的教程能给有需要的伙伴避避坑。如有错误,欢迎交流。
1、安装Jenkins安装Jenkins教程请参考:CentOS 7安装Jenkins
2、安装Docker和Git# 安装docker-ce yum -y install docker-ce # 查看版本,测试是否安装成功 docker version # 安装git客户端 yum install -y git # 查看版本,测试是否安装成功 git --version3、新建任务 4、从Github拿到仓库地址和Token (4-1)仓库地址 (2-1)Token
5、在Jenkins配置Github项目地址
在Jenkins点击源码管理选择Git,Repository URL(仓库地址)填写步骤(4-1)仓库地址,也就是你Github项目的https地址
项目属于私有的,所以需要在下面添加Github用户名密码(密码填写Github Token参考步骤(2-1)Token)
选择配置的账号
6、立即构建构建过程中常见错误
错误:ERROR: Error fetching remote repo 'origin'
解决方案:Jenkins构建过程中报错误Error fetching remote repo ‘origin‘
错误:ERROR: Error cloning remote repo 'origin'
时而出现这个错误,时而成功,猜测是由于使用Github网络原因。如有了解具体原因的知情小伙伴,可在评论区分享。 (为了验证是否是Github的原因,我后面将Github改为Gitee,多次构建都成功)
根据控制台输出可知道构建工作空间路径,打开该路径发现Github项目已经被拉取下来。仅仅拉取下来还不够,我们希望能自动部署到Docker。
7、生成Dockerfile文件 8、配置执行shellshell命令
#!/bin/bash echo ---------------获取短版本号...-------- GITHASH=`git rev-parse --short HEAD` # # PS:根据vs生成的Dockerfile文件中的一些执行路径可以发现是要与项目文件同级,所以这边需要把他移动到与项目文件同级。 echo ---------------移动Dockerfile文件到当前文件...-------- mv WebApplication1/Dockerfile . echo ---------------Building Docker Image...-------- docker build -t jkdemo:$GITHASH . echo ---------------将短版本号标记为最新版本...-------- docker tag jkdemo:$GITHASH jkdemo:latest echo ---------------删除当前运行的容器...---------- docker rm -f jkdemo echo ---------------Launching Container...---------- docker run -d -p 5001:80 --name jkdemo jkdemo:latest9、再次立即构建 10、测试
根据shell执行,运行的容器端口为5001



