Jenkins ——你很神气
安装Jenkins
just one line
docker run -it -p 8080:8080 jenkinsci/blueocean
open broswer input ip:8080
创建task
新建 - 流水线
配置里填写git仓库地址, 选择分支
脚本路径默认 Jenkinsfile
在项目(git仓库的Project)根路径创建Jenkinsfile 文件
pipline {agent any //agent 部分指定了整个流水线或特定的部分, 将会在Jenkins环境中执行的位置tools 'gradle' // depends on you tool namestages {stage('build') {step {sh 'gradle -v'sh 'gradle bootJar'}}}
}
保存
立即构建
踩坑
使用github仓库时使用http路径总是报错
然后转为使用git@路径, 需要在你的主机上生成ssh key
然后设置在github账号中(id_rsa.pub 文件内容)
或者在Jenkins全局配置中配置github token
由于我是在docker 中运行Jenkins, 所以我们把密钥的路径映射一下
运行docker时加上 -v /root/.ssh:/root/.ssh
其它
生成token
ssh-keygen -o
验证
ssh -T git@github.com
you will see
Hi username! You’ve successfully authenticated, but GitHub does not provide shell access
安装docker细节
docker 安装方式有很多种, 这里我们介绍使用docker安装的方式
注意我们的镜像是带 blueocean 的
blueocean 是一种管理 Pipeline 类型task的一套 ui
docker run --net=host jenkinsci/blueocean
这里有一点注意, –net=host 使用host网络(默认是bridge) 因此我们可以在主机直接访问容器里的端口, docker 安装后默认包含三种网络 host, bridge, none
我们知道 Jenkins 默认跑在 8080 端口, 此时我们使用 ip:8080 即可访问
或者使用-p参数进行端口映射
docker run-u root-d -p 8080:8080 -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock-v /root/.ssh:/root/.sshjenkinsci/blueocean
-v jenkins-data:/var/jenkins_home
参数使用docker volume这样Jenkins数据可以持久保存, 即使重启容器也可以保存上次运行信息
-d 后台执行
-p 发布端口
use docker agent
pipeline {agent {docker { image 'gradle:jdk8' } //我们选择使用docker gradle镜像来准备}stages {stage('build') {steps {sh 'gradle -v'sh 'gradle clean bootJar'}}stage('start') {steps {sh "chmod +x ./deliver.sh"sh './deliver.sh'}}}//执行成功后后续操作post {success {echo 'success'}}
}
deliver.sh
echo 'The following command runs and outputs the execution of your Java'
echo 'application (which Jenkins built using gradle) to the Jenkins UI.'service_name="hello-blog"
service_prot=9000set -x
docker build . -t $service_name
docker run -d --name $service_name --net=host (-p $service_prot:$service_prot) $service_name
docker outside of docker
由于我们的Jenkins跑在dcker里面,我们的java应用也需要docker环境
我们需要加上卷映射
-v $(which docker):/usr/bin/docker
-v /var/run/docker.sock:/var/run/docker.sock
这时就可以,在镜像内部继续使用docker
reference:
https://blog.container-solutions.com/running-docker-in-jenkins-in-docker
https://www.jenkins.io/zh/doc/book/installing/
Jenkins ——你很神气相关推荐
- jenkins和docker实现自动化构建部署
应用场景 程序员开发应用,开发后需要提交gitlub,然后从gitlab拉取代码,进行构建,发布到tomcat中然后发布看呈现效果,这样的工作是频繁反复的在进行的,浪费了程序员的大量时间,那么能不能把 ...
- jenkins集群测试环境原理
Jenkins自动化构建成过程,可帮助我们节省大量时间,完成这个过程的自动化后,在以后的开发过程中,我们需要做的,就是只是提交代码到版本库中,构建自动完成,基本不再需要人工干预. 代码仓库作为构建的素 ...
- Robotframework集成jenkins执行用例
Robotframework+jenkins配置 假设我们完成了一个模块的用例设计,可是想晚上9点或凌晨运行,这时候该怎么实现呢?jenkins可以很好解决我们的疑难. Jenkins安装 这里简单说 ...
- Jenkins 在 Tomcat 中的部署及代码静态检查工具集成
Jenkins 的简单部署 在安装了 Jenkins 运行所需的依赖(主要是 JDK)之后,可以通过如下步骤简单快速地部署 Jenkins: 下载 Jenkins. 打开终端并切换至下载目录. 运行命 ...
- 使用应用编排服务一键式部署,持续集成利器--jenkins
这篇文章主要是来聊一聊jenkins,可说道jenkins,我没有办法不把它与持续集成(Continuous integration,简称CI)联系到一起,所以我先来谈谈什么是持续集成以及为什么需要持 ...
- Jenkins 安装与使用--实例
參考了博客Jenkins master在windows上安装 Jenkins的主要功能是监视反复工作的运行,比如软件project的构建详细地: *软件的持续构建和測试 本质上提供了一个易于使用的持续 ...
- 测开:从0到1,自动化测试接入Jenkins学习
1. 背景 本地实现了自动化脚本之后,公司需要统一管理和定时构建执行.所以接到了使用Jenkins来做持续集成管理的任务.下面开始我一步步构建的过程. 当时公司运维的同学已经搭建了Jenkins的环境 ...
- Jenkins 设置镜像_在k8s上安装Jenkins及常见问题
持续集成和部署是DevOps的重要组成部分,Jenkins是一款非常流行的持续集成和部署工具,最近试验了一下Jenkins,发现它是我一段时间以来用过的工具中最复杂的.一个可能的原因是它需要与各种其它 ...
- 在Tomcat下部署Jenkins
部署Jenkins有很多种方法,今天我们介绍下如何通过Tomcat轻松部署Jenkins 一.Why Linux,Not Windows 一般都会将Jenkins这种服务类的系统,部署在Linux端( ...
最新文章
- 机器学习入门(04)— 神经网络多维数组 NumPy 相乘运算
- 关于consistent hash的思考及改进方案
- 石子归并 51Nod - 1021
- ROS系统玩转自主移动机器人(3)-- 开源机器人结构介绍
- (数学分析笔记)常用函数不定积分及其计算技巧
- mysql句式增删改,MySQL 增删改语句
- 恢复初始快捷键_如何将Windows10系统还原初始状态
- nodejs pm2教程(转载)
- 小腿抽筋了,按摩承山穴,外加念观世音菩萨是不是迷信
- CAPL基础知识学习
- 一二线城市知名IT互联网公司名单!
- 如何修改PDF,PDF怎么旋转页面方向
- TOM邮箱|怎么在邮箱里设置邮件个人签名呢?
- Cherno C++ P61 C++的命名空间
- 【宽创案例】青海牦牛文化馆:走进牦牛之都!
- Pr:Lumetri 范围
- 《ClickHouse原理解析与应用实践》读书笔记(2)
- Lammps压力控制之活塞控压—一个代码循环限域空间内的气体分子数
- python成绩查询系统_python成绩查询
- python执行定时任务