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 ...
随机推荐
- 运行composer出现do not run Composer as root/super user!
curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer composer - ...
- js 根据data-i 降序排列
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 洛谷P1064 金明的预算方案(01背包)
题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NNN元钱就行” ...
- Yii2掉index.php?r=
普通 首先确认apache2配置 1. 开启 apache 的 mod_rewrite 模块 去掉LoadModule rewrite_module modules/mod_rewrite.so前的“ ...
- 数据表损坏:Incorrect key file for table
最近做项目过程中,调用数据库内容,老是出现一些类似于数据表损坏的提示信息(Incorrect key file for table edison_category),查询不到数据,很是恼火,后来冷静下 ...
- 「题解」「2014 NOI模拟赛 Day7」冒泡排序
目录 题目 考场思考 正解 题目勾起了我对我蒟蒻时代的回忆,虽然我现在也蒟蒻 题目 点这里 可能链接会挂,在网上搜题目就有. 毕竟 \(BZOJ\) 有点老了... 考场思考 本来以为十分友善的一道题 ...
- 【代码审计】VAuditDemo 重装漏洞
一.源码安装漏洞介绍 一般在PHP源码程序都有一个初始安装的功能,如果相关代码没有对参数进行严格过滤,可能会导致攻击者访问安装页面(install.php)或构造数据包,对网站进行重新安装,从而危害网 ...
- 【代码总结】PHP面向对象之类与对象
一.类和对象的关系 类的实体化结果是对象,而对象的抽象就是类.在开发过程中,我们通常都是先抽象(幻想)出一个类,再用该类去创建对象(实现幻想的内容).在程序中,直接使用的是我们(实现幻想)的对象,而不 ...
- PyQt5窗口操作大全
1.多窗口交互-使用信号与槽函数'''如果一个窗口和一个窗口交互,尽量不要访问窗口B的控件:应该访问与信号绑定的槽函数,从而降低窗口之间的耦合度 例:如果A直接访问B窗口的控件,一旦B窗口的控件发生改 ...
- 确定BP神经网络中的节点数
输入层 输入层节点数=输入向量维数 MNIST例子中,单张MNIST图片大小为28*28,reshape为一维数组,长度为784,所以输入层节点数为784: network = Network([78 ...