系统环境: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/81783430https://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 及自定义访问路径重点讲解的更多相关文章

  1. 从零搭建docker+jenkins 自动化部署环境

    从零搭建docker+jenkins+node.js自动化部署环境 本次案例基于CentOS 7系统 适合有一定docker使用经验的人阅读 适合有一定linux命令使用经验的人阅读 1.docker ...

  2. 在CentOS7下从0开始搭建docker并发布tomcat项目

    一切从0开始,我也是个小白: 1.检查你的系统是不是高于3.8的内核,如果没有请升级CentOS7或者Ubuntu 14 #uname -a 2.CentOS7下安装docker #yum -y in ...

  3. CentOS7下使用Sonatype Nexus3搭建Docker私有仓库

    相关资料: Sonatype Nexus3官方网站:https://www.sonatype.com/download-oss-sonatype Sonatype Nexus3 Docker Hub地 ...

  4. centos7一步一步搭建docker phpmyadmin 及nginx配置phpmyadmin非根目录重点讲解

    系统环境:centos7.7  镜像image 版本:phpmyadmin/phpmyadmin(截止2020.01.10最新版) 参考文章:https://blog.csdn.net/a258929 ...

  5. centos7一步一步搭建docker nginx 及重点讲解

    系统环境:centos7.7 (VMware中) images版本:nginx:latest (截止2020.01.10最新版) 1.拉取镜像 docker pull nginx 2.启动nginx容 ...

  6. 一步一步搭建Jenkins环境

    Jenkins使用经验谈1(一步一步搭建Jenkins环境)在公司使用 Jenkins 软件已经有一段时间了,走了很多弯路,但也积累了一些经验,可以和大家分享一下.我们来一起搭建Jenkins环境.首 ...

  7. 一步一步配置docker(tomcat+jenkins+phpmyadmin+nginx)

    经过半个月的docker学习实践,今天对自己的学习成果做个总结. 貌似官方推荐的是docker compose使用DockerFile 来配置,但目前还没学习使用docker compose,先学习通 ...

  8. 手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)...

    原文:手把手0基础项目实战(一)--教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)... 本文你将学到什么? 本文将以原理+实战的方式,首先对& ...

  9. 【Linux】一步一步学Linux——Centos7.5安装图解(08)

    00. 目录 参考博客:https://mp.csdn.net/mdeditor/95031775# 01. Centos7.5简介 CentOS(Community Enterprise Opera ...

随机推荐

  1. AppBoxFuture: Sql存储的ORM查询示例

      上篇介绍集成第三方Sql数据库时未实现如导航属性.子查询等功能,经过大半个月的努力作者初步实现了这些功能,基本上能满足80%-90%查询需求,特别复杂的查询可以用原生sql来处理,下面分别示例介绍 ...

  2. Python - 用python实现split函数

    # pattern支持字符或者字符串 def my_split(string, pattern): ret = [] len_pattern = len(pattern) while True: in ...

  3. Django框架之ORM的相关操作(二)

    模型类: class Commongity(models.Model): id=models.AutoField(primary_key=True) name=models.CharField(max ...

  4. Catalyst 6500/6000 Switches ARP or CAM Table

    译:https://www.cisco.com/c/en/us/support/docs/switches/catalyst-6500-series-switches/71079-arp-cam-ta ...

  5. java平衡二叉树AVL数

    平衡二叉树(Balanced Binary Tree)具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树 右旋:在插入二叉树的时候,根节点的右侧高 ...

  6. 【C语言】编写程序,输出以下图形

    编写程序输出以下图形: * ** *** **** ***** 代码: #include <stdio.h> int main() { int i, j; ; i <= ; i++) ...

  7. 【CSS属性#2】

    " 目录 一.盒子模型 二.外边距 margin 三.内填充 padding 四.浮动 float 五.清除浮动 clear 六.溢出 overflow 七.定位 position 1. 无 ...

  8. java 编译java文件 以及生成可执行jar

    1.新建java project: 2.src下新建包以及class文件: 3.打包: 5.选取目标mainclass 很关键决定jar是否可执行: 7.build jar : 8:artifact ...

  9. i.MX RT1010之FlexIO模拟I2S外设

    恩智浦的i.MX RT1010是跨界处理器产品,作为i.MX RT跨界MCU系列的一个新的切入点,i.MX RT1010是成本最低的LQFP封装方式与i.MX RT系列产品一贯的高性能和易用性的结合产 ...

  10. 页面分享功能,分享好友、朋友圈判断,用share_type做标记 这里用的是jweixin-1.3.2.js

    这里用的是jweixin-1.3.2.js trigger: function (res) { //判断分享的状态,好友.朋友圈 localStorage.setItem("share_ty ...