Ubuntu中实现Docker内安装jenkins+jenkins远程触发
前面做了在ubuntu中安装jenkins+docker实现自动部署,但是得安装jdk8+tomcat8环境,比较麻烦,因此本文记录如何将jenkins直接装在dockers内并且实现远程触发功能。
docker的安装不做阐述,详见
https://www.cnblogs.com/dhcnblog/p/11291709.html
安装docker内的jenkins:
1、直接登陆jenkins官网查看最新的docker pull命令
https://jenkins.io/zh/download/
2、用docker命令拉取jenkins镜像
sudo docker pull jenkins/jenkins:lts
3、配置宿主机映射到容器的目录,之后jenkins的一些配置文件都将会存储到该目录下,这个目录可以自己定,但是我建议遵守我这样的规范,便于日后查找和管理
sudo mkdir /home/jenkins_home # 宿主机上创建jenkins_home目录
sudo chown -R : /home/jenkins_home #设置该目录的所有者和所属的组
4、启动jenkins镜像,执行如下命令,本人用的vmware虚拟机直接复制粘贴会直接按行执行 这样会报错。因此用工具连接上虚拟机执行如下命令(工具用的:)
sudo docker run -d --name jenkins -p : -p : -u root \
-v /home/jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker \
-v /usr/lib/x86_64-linux-gnu/libltdl.so.:/usr/lib/x86_64-linux-gnu/libltdl.so. \
-v /opt:/opt \
-v /etc/timezone:/etc/timezone jenkins/jenkins:lts
命令解析:
-d 表示以后台模式运行
--name 为容器定义一个名字(后面可以代替容器id使用)
-p 表示映射容器的端口到宿主机的端口
-v 表示映射宿主机的目录到容器的目录
-u root 使用root用户运行,避免后面出现的一些执行权限问题
-v /home/jenkins_home:/var/jenkins_home 映射jenkins_home,将数据存储到宿主机,这样配置就不会随容器丢失
-v /var/run/docker.sock:/var/run/docker.sock 与 -v /usr/bin/docker:/usr/bin/docker 把宿主机docker 映射到容器内,可以直接在容器内使用宿主机docker
-v /usr/lib/x86_64-linux-gnu/libltdl.so.:/usr/lib/x86_64-linux-gnu/libltdl.so. \ 容器内docker运行需要的库文件
-v /opt:/opt \ 自主安装的一些运行时软件(如java/maven/git...)
-v /etc/timezone:/etc/timezone 映射时区文件,保证容器的时区和宿主机相同(官网的jenkins容器时区不是中国的时区)
最后的jenkins/jenkins:lts是要启动的镜像
5、接下来就可以访问jenkins了,第一次访问需要输入初始密码。命令如下,然后需要安装基本插件选择第一个就好了-->创建用户,就可以进入jenkins构建项目了。
sudo cat /home/jenkins_home/secrets/initialAdminPassword

注意:构建项目的时候,shell语句中不可以有“sudo”命令,因为jenkins启动直接在docker容器中,我们对docker的命令做了映射使jenkins可以直接使用docker命令,但是,容器中无法识别sudo命令,具体原因有待详查。这一点和直接装在宿主机中不同,也许装在宿主 机中的也可以设置,但是没有细做考究。

使用本地jenkins远程触发服务器上的jenkins:
可以通过好几种方式来触发,本人用的在远程机上配置访问用户的方式。
1、配置登陆用户,生成APIToken
进入配置页方法:jenkins首页-->系统管理-->管理用户-->编辑当前用户(也可以创建新用户,创建好后得推出当前用户用心用户登陆才能看见token)-->添加新token,注意一次生成后只能显示一次,一定牢记。不然就得重新生成

2、给需要远程触发的项目添加身份令牌
在项目配置中的 构建触发器中 勾选 触发远程构建-->自己填写身份令牌

3、最后回到本地的项目配置中触发远程的shell语句
curl -X POST http://dh:115ad9151b30c0bde04c60ba364d2a3416@192.168.44.135:8090/job/dhtest/build?token=dhtest441358090

4、保存后立即构建、触发成功
本地

远程:

参考文章:
jenkins安装:https://www.jianshu.com/p/9018cfa3654b
jenkins远程触发:https://blog.csdn.net/m0_37904728/article/details/82790390
Ubuntu中实现Docker内安装jenkins+jenkins远程触发的更多相关文章
- 在Docker内安装jenkins运行和基础配置
这里是在linux环境下安装docker之后,在doucer内安装jenkins --------------------docker 安装 jenkins---------------------- ...
- Jenkins - 以Docker方式安装启动Jenkins
1 - 官网信息 操作步骤:https://jenkins.io/zh/doc/book/installing/#docker Docker映像地址:https://hub.docker.com/r/ ...
- Docker Compose安装部署Jenkins
流水线可以让项目发布流程更加清晰,docker可以大大减少Jenkins配置. 1.前言 数据卷挂载到 /var 磁盘目录下,因为该磁盘空间较大,后面需要挂载容器数据卷,以防内存吃紧. 为了可以留存启 ...
- ubuntu环境下docker的安装与操作
只要按照本文的步骤一步步的走,就能正确的安装docker并使用,ubuntu需要联网 1. 在Ubuntu中安装Docker 更新ubuntu的apt源索引 sudo apt-get update 安 ...
- Hadoop学习---Ubuntu中hadoop完全分布式安装教程
软件版本 Hadoop版本号:hadoop-2.6.0-cdh5.7.0: VMWare版本号:VMware 9或10 Linux系统:CentOS 6.4-6.5 或Ubuntu版本号:ubuntu ...
- Ubuntu中的Docker搭建Tensorflow环境
一.docker环境安装 1)更新.安装依赖包 sudo apt-get update sudo apt-get install apt-transport-https ca-certificates ...
- ubuntu中查找软件的安装位置
ubuntu中的软件可通过图形界面的软件中心安装,也可以通过命令行apt-get install安装.但是安装后的软件在哪个位置呢?这点跟windows环境下安装软件的路径选择不一样.ubuntu中可 ...
- ubuntu中KDE与GNOME安装切换
转载:http://apps.hi.baidu.com/share/detail/18919303 1.在Ubuntu中安装KDE桌面命令 sudo apt-get install kUbuntu-d ...
- ubuntu中taglist和ctags安装使用
1.使用命令安装ctags: 2.安装taglist 下载: http://vim.sourceforge.net/scripts/download_script.php?src_id=6416 拷贝 ...
随机推荐
- 8VC Venture Cup 2017 - Elimination Round - B
题目链接:http://codeforces.com/contest/755/problem/B 题意:给定PolandBall 和EnemyBall 这2个人要说的单词,然后每一回合轮到的人要说一个 ...
- 罗技K380使用手册
Ipad最佳伴侣|码字神器|罗技K380|附使用指南 ———— 为了方便平时在家处理工作➕写小红书笔记,年初买了个Ipad2018 我以前买过一个罗技的K480,因为太重了不方便携带,于是又入了K38 ...
- create-react-app按需引入antd-mobile
1.引入 react-app-rewired 并修改 package.json 里的启动配置: npm i react-app-rewired@2.0.2-next.0 // 需要安装低版本 否则np ...
- 终端、mac等小技巧——2019年10月18日
1.新建finder窗口 cmd+N 2.查看文件夹结构 brew install tree tree命令行参数(只实用与安装了tree命令行工具): -a 显示所有文件和目录. -A 使用ASNI绘 ...
- 向指定URL 发送POST请求的方法
java发送psot请求: package com.tea.web.admin; import java.io.BufferedReader; import java.io.IOException; ...
- powerdesigner 15.1 逆向工程 sqlserver2008 、sqlserver2005 带注释
第一种方法:在第一个网址里面的代码可以直接赋值到对应位置即可 http://wjqe.blog.163.com/blog/static/19938452011612536439/ 第二种方法:可塑性较 ...
- 富文本框编辑器实现:a、支持图片复制粘贴;b、支持word复制粘贴图文。
Chrome+IE默认支持粘贴剪切板中的图片,但是我要发布的文章存在word里面,图片多达数十张,我总不能一张一张复制吧?Chrome高版本提供了可以将单张图片转换在BASE64字符串的功能.但是无法 ...
- [CSP-S模拟测试]:Walk(BFS+建边)
题目描述 在比特镇一共有$n$个街区,编号依次为$1$到$n$,它们之间通过若干条单向道路连接. 比特镇的交通系统极具特色,除了$m$条单向道路之外,每个街区还有一个编码${val}_i$,不同街区可 ...
- mysql实现“存在即更新,不存在即插入”
方法1:使用replace关键字 replace是insert的增强版,可以实现插入的数据和已存在的数据发生主键或者唯一键重复,则删除已存在的数据,再实现插入,如果不重复,则直接插入数据. 结合Myb ...
- appium移动端自动化测试的一些感想
花了一个多月的时间来复习,学习appium+python+android的UI层的自动化测试. 从最开始的环境搭建,都后面运行脚本报错各类错,到优化脚本结构,基本上问题不断. 相比,selenium做 ...