centos7一步一步搭建docker jenkins 及自定义访问路径重点讲解
系统环境:centos7.7 (VMware中)
镜像image 版本:jenkins/jenkins (截止2020.01.10最新版)
参考文章:https://www.jianshu.com/p/12c9a9654f83
1、一定要 docker pull jenkins/jenkins ,不要docker pull jenkins ,jenkins版本太旧已不维护了。(感谢文章:https://www.jianshu.com/p/9a3814c88bf2)

2、查看拉取的镜像 docker images 。

3、/www下创建一个my_jenkins 文件夹,用于存放Jenkins挂载文件。

4、为my_jenkins 文件夹赋予权限。

默认创建的文件夹为当前登录者的权限,我这里是root创建的,所以权限也为root,但jenkins容器需要的权限是jenkins,所以此处需要给my_jenkins 赋予jenkins权限。(关于权限的添加,我们要感谢下这篇文章:https://blog.csdn.net/fenglailea/article/details/82698596)

5、启动一个jenkins容器,命名为my_jenkins_2020,并将上面创建的文件夹挂载到容器。启动成功后docker ps 可以查看到已经成功启动的jenkins 容器。并且默认会映射到50000端口。
docker run -d --name my_jenkins_2020 -p 8080:8080 --restart=always -e TZ="Asia/Shanghai" -e JENKINS_OPTS="--prefix=/my_jenkins" -e JENKINS_ARGS="--prefix=/my_jenkins" -v /etc/localtime:/etc/localtime:ro -v /www/my_jenkins:/var/jenkins_home jenkins/jenkins
参数解析:
-d 后台运行容器,并返回容器ID;
--name 为容器起一个容易区分且容易书写的名字
-p 映射宿主机端口到容器端口,宿主机端口:容器端口
--restart=always 机器重启时自动启动容器
-e 设定一些必须的环境变量。
-e TZ="Asia/Shanghai" 设定时区为上海,强烈建议国内设定,否则容器内打印的所有日志时间都会差8小时。
-e JENKINS_OPTS="--prefix=/my_jenkins" -e JENKINS_ARGS="--prefix=/my_jenkins" 重点!!!设定jenkins访问的路径,非必选,如果是直接根目录或ip地址访问,则不需要添加,如果是想nginx反向代理且不在根目录下,则必须,否则只配置nginx会报静态文件404错误,此处名字应与文件夹名称一致。此处特别感谢两篇文章:https://blog.csdn.net/whh18254122507/article/details/81783430 和 https://www.jianshu.com/p/8315657465ac
-v 挂载宿主机文件到容器。本例两个分别为:
-v /etc/localtime:/etc/localtime:ro 挂载宿主机时间,保持容器时间正确。
-v /www/my_jenkins:/var/jenkins_home 绑定挂载文件

6、浏览器中访问自己的centos宿主机ip:8080/my_jenkins 反向代理路径,则进入jenkins配置页面。

上图中提示要去/var/jenkins_home/secrets/initialAdminPassword 中查看初始密码,但由于我们已经将对应文件夹挂载到宿主机了,所以可以直接在宿主机中查看 more /www/my_jenkins/secrets/initialAdminPassword ~~如下,则显示初始密码,每个人的都不同,请使用你自己的初始密码,将该值复制到上面的管理员密码中,点击“继续”。

7、等待初始化完成,继续选择“安装推荐的插件”,开始安装默认插件,根据网速不同安装速度可能会很慢,耐心等待完成。

我这K级龟速,大约1小时20分钟后。。。。

创建账号,既然是来学习这篇文章的,多数是第一次使用,可以创建一个通俗的账号admin,密码也可以简单点,我这里也是admin,正式环境可不要这么随便哟~,邮箱必填,点击“保存并完成”,继续,点击“开始使用jenkins"进入。

进入后我们选择左侧的”Manage Jenkins“,发现还是英文版的,需要重启下容器:docker restart my_jenkins_2020,并重新刷新你的jenkins页面,输入创建的账号密码。


8、安装全局工具配置。本文不讲解 git方式获取代码,所以删除git配置。

本文将以一个存储在svn下的srping mvc项目介绍搭建一个maven构建项目,所以我们需要安装jdk和maven全局工具。默认配置jdk已经安装在/usr/local/openjdk-8,我们只需改成手动配置即可,maven默认没有安装,我们选择自动安装。然后点击保存。

9、插件管理。选择系统管理中的“插件管理”——> “可选插件” ——> 输入Maven Integration 过滤,选中多选框,点击底部的直接安装。耐心等待安装完成~~

(非必选)同样的方式过滤安装Deploy to container 插件。该插件用于将项目发布到tomcat下,如果不需要的可以不安装。

安装完成后选中“安装完成后重启jenkins” 。
10、重启后我们创建第一个jenkins任务~~
如果不进行上一步的maven插件安装,则无法创建maven项目,现在则可以啦。
上面说了,本次我们构建的是svn上的项目,输入svn项目地址后需要绑定访问svn的账号。只需要输入账号密码保存即可,然后下拉菜单中便可以选择新添加的svn账号。

Build 中配置构建方式,输入 clean install(也可以输入其它mvn构建方式,不需要输入mvn package)

本篇我们的项目最终要放到tomcat里运行,上面我们已经安装了Deploy to container 插件,便是为此做的准备。最底部选择“添加构建后的操作步骤” ——> “Deploy war/ear to a container”。输入对应内容,此处tomcat URL为tomcat服务的地址,对应的账号为tomcat的访问账号,添加方式如上面的svn账号,不再重复。以上填写完毕后点击保存。

回到主页后准备构建。任务后面的下拉菜单选择立即构建,构建开始左侧会有进度,点击进度条查看构建详情,

正常应该就可以执行成功了,配置结束。
原文地址:https://www.cnblogs.com/jying/p/12173090.html
作者:一定会去旅行
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
但由于我的项目用到了微软的 sqlserver 数据库(别问为什么,问就是必须,不得不,have to),而微软的 com.microsoft.sqlserver:sqljdbc4:jar 默认是不能从maven仓库找到的,所以构建中报错,需要手动添加sqljdbc4.jar到jenkins环境。

11、解决以上问题。需要手动添加sqljdbc.jar 对应版本到jenkins容器中,首先docker jenkins 中虽然已经安装了maven,但是没有放到系统环境变量里,需要设置maven的环境变量才能使用mvn。
A、将对应版本的sqljdbc.jar 上传到宿主机/www文件夹。(此处我已经上传了sqljdbc42.jar到宿主机,本文不详细讲如何获取并上传该文件)然后复制到docker jenkins容器。

B、复制docker jenkins 的/etc/profile 文件到宿主机文件夹/www/my_jenkins。(为什么要复制到宿主机?因为docker jenkins 容器中默认不能使用vim,不想复制到本地也可以在docker jenkins容器中安装vim直接编辑,可以参考 https://www.cnblogs.com/jying/p/12082929.html 中的jenkins部分。)

C、编辑复制来的profile文件,vi profile,在最后添加maven环境变量。(不会编辑的自己先学习下~~)因为我们用的是jenkins自动安装的maven,所以安装路径在/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.3,版本改成自己上面安装maven插件时对应的版本。

D、编辑完成后退出并保存,然后再复制回docker jenkins容器。((强烈建议且必须)同样的方式需要复制docker jenkins容器中的/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.3/conf/setting.xml 文件到宿主机,并修改其镜像为国内阿里镜像,再复制回jenkins容器。但由于我们已经将/var/jenkins_home挂载到宿主机/www/my_jenkins,所以可以直接修改宿主机的/www/my_jenkins/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.3/conf/setting.xml。)
<!-- 阿里云中央仓库 ,将此段代码放在setting.xml的mirrors内-->
<mirror>
<id>nexus-aliyun</id>
<name>Nexus aliyun</name>
<mirrorOf>central</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
最后以root用户权限登录进jenkins容器,此处注意登录角色,否则可能会提示没有权限。

E、使设置生效需要执行下:source profile,然后再查看mvn -v,已经有信息了。

F、将sqljdbc.jar加入docker jenkins容器maven仓库。
mvn install:install-file -Dfile=sqljdbc42.jar -Dpackaging=jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 这里记得改成自己的版本 -Dfile="jar包的绝对路径+完整文件名称版本"
此处假设你已经将sqljdbc.jar复制进docker jenkins容器文件夹/var/jenkins_home下。

G、退出docker jenkins容器,再次回到页面重新构建maven项目。

正常情况下应该可以了~~
原文地址:https://www.cnblogs.com/jying/p/12173090.html
作者:一定会去旅行
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
but,我的因为是自己搭建的vmware 虚拟机中centos7.7 ,结果又构建失败:Caused by: java.net.NoRouteToHostException: No route to host (Host unreachable)

网上查找原因,是防火墙问题,但是按照某些说法直接关掉防火墙后无法连接内网的svn了,,,那些失败的方法我就不贴出来误导大家了,,最后自己在虚拟机上手动添加了8080和8081端口到防火墙,再次构建,终于成功!!!


配置完成!!!

~~~~~~~~~~~~~~ 补充 ~~~~~~~~~~~~~~~~~~~~~~~~~~
jenkins忘记登录密码时重置密码为123456方式:https://www.jianshu.com/p/68fcfff47358
修改 JENKINS_HOME/users/usernamedir 目录下的config.xml 文件 注:usernamedir 就是你忘记密码对应的用户文件夹
如果是java -jar方式启动的,HOME目录位于/root/.jenkins 修改config.xml,找到 passwordHash部分,替换原有的hash值
#jbcrypt:$2a$$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS
修改为 #jbcrypt:$2a$$4NW.9hNVyltZlHzrNOOjlOgfGrGUkZEpBfhkaUrb7ODQKBVmKRcmK 后者是123456的hash值 重启Jenkins
centos7一步一步搭建docker jenkins 及自定义访问路径重点讲解的更多相关文章
- 从零搭建docker+jenkins 自动化部署环境
从零搭建docker+jenkins+node.js自动化部署环境 本次案例基于CentOS 7系统 适合有一定docker使用经验的人阅读 适合有一定linux命令使用经验的人阅读 1.docker ...
- 在CentOS7下从0开始搭建docker并发布tomcat项目
一切从0开始,我也是个小白: 1.检查你的系统是不是高于3.8的内核,如果没有请升级CentOS7或者Ubuntu 14 #uname -a 2.CentOS7下安装docker #yum -y in ...
- CentOS7下使用Sonatype Nexus3搭建Docker私有仓库
相关资料: Sonatype Nexus3官方网站:https://www.sonatype.com/download-oss-sonatype Sonatype Nexus3 Docker Hub地 ...
- centos7一步一步搭建docker phpmyadmin 及nginx配置phpmyadmin非根目录重点讲解
系统环境:centos7.7 镜像image 版本:phpmyadmin/phpmyadmin(截止2020.01.10最新版) 参考文章:https://blog.csdn.net/a258929 ...
- centos7一步一步搭建docker nginx 及重点讲解
系统环境:centos7.7 (VMware中) images版本:nginx:latest (截止2020.01.10最新版) 1.拉取镜像 docker pull nginx 2.启动nginx容 ...
- 一步一步搭建Jenkins环境
Jenkins使用经验谈1(一步一步搭建Jenkins环境)在公司使用 Jenkins 软件已经有一段时间了,走了很多弯路,但也积累了一些经验,可以和大家分享一下.我们来一起搭建Jenkins环境.首 ...
- 一步一步配置docker(tomcat+jenkins+phpmyadmin+nginx)
经过半个月的docker学习实践,今天对自己的学习成果做个总结. 貌似官方推荐的是docker compose使用DockerFile 来配置,但目前还没学习使用docker compose,先学习通 ...
- 手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)...
原文:手把手0基础项目实战(一)--教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)... 本文你将学到什么? 本文将以原理+实战的方式,首先对& ...
- 【Linux】一步一步学Linux——Centos7.5安装图解(08)
00. 目录 参考博客:https://mp.csdn.net/mdeditor/95031775# 01. Centos7.5简介 CentOS(Community Enterprise Opera ...
随机推荐
- 【原】移动端vue页面点透事件 - 分析与解决
近期项目遇到了vue页面事件被带到下一个页面的问题,也就是我们常说的点透事件,主要表现在android机器上,花了不少时间折腾,简单做下总结~ vue页面之间的切换通过Vue Router的route ...
- Go 后端主要做什么
漫谈 Go 语言后端开发 :https://blog.csdn.net/u010986776/article/details/87276303 Golang 资深后端工程师要了解的知识:https:/ ...
- pyinstaller 处理后程序找不到模块
可将模块文件夹拷贝到当前文件夹中
- 消息队列(二)--- RocketMQ-NameServer阅读
概述 所有broker在启动的时候都会向NameServer进行注册,对它进行发送心跳包. 源码阅读 我们先从 NamesrvStartup这个类分析 public static void mai ...
- 微信小程序媒体音乐API更新小记,以及音乐外链制作方法
假期开发微信小程序玩的时候发现音乐播放功能,但是教程中的旧版API已经不能成成功打开 官方文档写的很清楚,旧版接口不再维护,使用新版接口,换API后,又出现了新的问题,虽然没有报错信息,但是播放器闪退 ...
- 实验四《Android程序设计》
实验四<Android程序设计> 一.实验内容 1.Android Stuidio的安装测试 2.Activity测试 3.UI测试 4.布局测试 5.事件处理测试 二.实验步骤 第一部分 ...
- Django框架之登录案例
内容: (1)request.GET和request.POST (2)获取get方法提交和post方法提交的数据 一.登录案例 登录逻辑代码 def login(request): if reques ...
- 浅谈SQL注入漏洞以及防范策略
--HeShiwei 2014-5-15 什么是SQL注入 SQL注入,指的是用户通过向登录框输入恶意字符,利用代码的字符串拼接漏洞进行网站注入攻击,最终导致整个网站用户表信息泄露的攻击方式.黑客就是 ...
- mysql的一些不常用语句
今天写项目,用的ThinkPHP,写的时候有点费劲,原因嘛 无非是对框架或者mysql的一些知识的遗忘. 1.为了配合ThinkPHP中的控制器,需要修改数据库中表名,一时想不起来,幸好有百度,问题很 ...
- gatling高性能测试工具
使用mvn命令直接测试. (loadrunner-----) 1.新建maven工程 2.在pom中导入依赖 <dependencies> <dependency> < ...