一、前言 Jenkins作为CI、CD的先驱者,虽然现在的风头没有Gitlab强了,但是还是老当益壮,很多中小公司还是使用比较广泛的。最近小编经历了一次Jenkins发包,感觉还不错,所以自己学习了一下。网上比较多的教程都是在Linux上搭建Jenkins,小编经过一个星期的探索终于完成了在docker中进行搭建。 最终版就是:通过git上传代码使用Jenkins构建自动打包把jar包打成docker镜像,运行在docker中,Windows下进行访问 主要记录一下一些踩过的坑和注意点,让后来人能够跟着小编一次完成!!二、安装Docker Linux中安装Docker,在Docker中安装MySQL和Redis并在Windows下连接访问(图文教程)掉发的小王的博客CSDN博客三、linux安装jdk和maven1、下载JDK8Linux版本 官网下载太慢了,小编在这里为大家下载好了: 链接:https:pan。baidu。coms1nlfc2gwL0HowWbVuJiG4g 提取码:ov242、下载Maven maven3。8。5下载链接:https:dlcdn。apache。orgmavenmaven33。8。5binariesapachemaven3。8。5bin。tar。gz3、使用xftp上传到linux上 4、解压 解压maventarzxvfapachemaven3。8。5bin。tar。gz 重命名mavenmvapachemaven3。8。5bin。tar。gzapachemaven3。8。5 解压jdktarzxvfjdk8u333linuxx64。tar。gz 重命名jdkmvjdk8u333linuxx64。tar。gzjdk1。85、配置环境变量 进入环境变量文件vimetcprofile 添加jdk和manven配置 输入i,进入输入模式 注意自己的安装目录,放在文件最上面就行JAVAHOMEusrlocaljavajdk1。8CLASSPATH。:JAVAHOMElibdt。jar:JAVAHOMElibtools。jarPATHJAVAHOMEbin:PATHexportJAVAHOMECLASSPATHPATHexportMAVENHOMEusrlocaljavaapachemaven3。8。5exportPATH{MAVENHOME}bin:{PATH} 按下esc,输入:wq保存退出。 查看是否安装成功javaversionmvnv 6、配置Maven加速镜像cdapachemaven3。8。5confvimsettings。xml 输入i,进入输入模式mirrorsmirroridalimavenidnamealiyunmavennameurlhttp:maven。aliyun。comnexuscontentgroupspublicurlmirrorOfcentralmirrorOfmirrormirrors 按下esc,输入:wq保存退出。 四、Docker安装Jenkins1。准备挂载目录cdhomemkdirjenkinshome 一定要赋予修改权限,不然挂载会失败,我们这里给最高权限。chmodR777jenkinshome 2。执行docker命令dockerrundinamemyjenkinsp8080:8080vhomejenkinshome:varjenkinshomevusrlocaljavajdk:usrlocaljdk1。8vusrlocaljavaapachemaven3。8。5:usrlocalapachemaven3。8。5v(whichdocker):usrbindockervvarrundocker。sock:varrundocker。sockjenkinsjenkins:lts vhomejenkinshome:varjenkinshome:是对容器内存储Jenkins的一些配置信息的文件夹 vusrlocaljavajdk:usrlocaljdk1。8:是把linux下的jdk和容器内的关联(配置Jenkins时使用) vusrlocaljavaapachemaven3。8。5:usrlocalapachemaven3。8。5:是把linux下的maven和容器内的关联(配置Jenkins时使用) v(whichdocker):usrbindockervvarrundocker。sock:varrundocker。sock:是可以在Jenkins容器里使用我们Linux下的docker。五、配置Jenkins1。进入Jenkins 输入:http:192。168。84。133:8080(ip端口号) 2。获取密码dockerlogs容器id 3。安装插件 4。创建用户 5。保存配置地址 6。配置插件镜像 输入:https:mirrors。tuna。tsinghua。edu。cnjenkinsupdatesupdatecenter。json 点击提交 7。安装ssh插件 安装完成重启一下Jenkins8。添加ssh登录账号凭据 点击系统管理,找到下图点击 9。配置全局ssh 点击系统管理,找到系统配置 点击新增: 点击保存: 10。配置jdk和maven 点击系统管理,找到全局工具配置: 点击保存六、准备Springboot项目到git1。核心代码 我们看到只是一个请求打印,我们最后访问有docker成功,代表我们构建发包成功! 2。pom内容buildpluginsplugingroupIdorg。springframework。bootgroupIdspringbootmavenpluginartifactIdexecutionsexecutiongoalsgoalrepackagegoalgoalsexecutionexecutionsconfigurationincludeSystemScopetrueincludeSystemScopeconfigurationpluginpluginsbuild3。yml文件 这里只指定了端口号server。port80814。Dockerfile 和pom文件同级FROMjava:8COPY。jarapp。jarCMD〔server。port8080〕EXPOSE8080ENTRYPOINT〔java,jar,app。jar〕5。上传git仓库 七、使用Jenkins部署项目1。新建任务 2。添加git凭据 选择刚刚添加的凭据报错信息消失 3。添加maven构建 4。增加构建执行shell shell脚本:!binbash服务名称SERVERNAMEjenkins源jar名称,mvn打包之后,target目录下的jar包名称JARNAMEdemo0。0。1SNAPSHOTjenkins下的目录JENKINSHOMEvarjenkinshomeworkspacejenkins等待三秒echosleep3ssleep1echosleep2ssleep1echosleep1ssleep1echo结束进程完成cdJENKINSHOMEtargetcpJENKINSHOMEDockerfileJENKINSHOMEtarget修改文件权限chmod755JARNAME。jarecho看看docker能不能用dockervecho停止容器停止容器dockerstopspringbootecho删除容器删除容器dockerrmspringbootecho删除镜像删除镜像dockerrmispringbootecho打包镜像打包镜像dockerbuildtspringboot。echo运行镜像运行镜像dockerrundp8081:8081namespringbootspringboot 5。立即构建 6。控制台输出报错 我们看到打包成功了,就是在使用docker命令的时候出现权限问题,这是我们要给docker。sock权限就可以解决了!! 报错信息:GotpermissiondeniedwhiletryingtoconnecttotheDockerdaemonsocketatunix:varrundocker。sock:Posthttp:2Fvar2Frun2Fdocker。sockv1。24containersspringbootstop:dialunixvarrundocker。sock:connect:permissiondenied 解决方案:chmodarwvarrundocker。sock7。在次构建 我们发现没有报错,也看到了容器的id 8。查询docker镜像是否启动dockerimagesdockerps 9。Win10进行访问测试 输入地址:http:192。168。84。133:8081testdocker 七、总结 小编断断续续研究了一星期,太不容易了,中间也是遇到很多坑,只要是跟着小编走下去的基本都可以跑出来的! 看到这里还不给小编一键三连起来!!谢谢大家了哦 有缘人才可以看得到的哦!!! 小王博客站