docker下的Jenkins安装和体验【转】
原文地址:http://blog.csdn.net/boling_cavalry/article/details/78942408
作为一款优秀的持续集成工具,jenkins在日常的项目中经常会用到,本次实战我们在docker下快速搭建一个Jenkins服务,并体验其项目构建能力;
实战环境
windows、mac、linux等系统,只要装了docker服务都可以作为实战环境,我用的是ubuntu16,安装的docker版本是:17.03.2-ce;
准备文件映射路径
jenkins的容器启动后,重要的文件我们希望能保存在当前电脑,否则容器被损坏或者删除后就找不回这些文件了,因此要在当前电脑上准备一个目录作为文件映射,注意文件夹权限问题,我这边准备的本机目录是/usr/local/work/jenkins,并且执行了chmod 777 /usr/local/work/jenkins以确保docker进程有权限读写此目录;
启动容器
- 在控制台执行以下命令,docker会去hub.docker.com下载最新的jenkins官方镜像,然后启动一个名为j01的容器,并且将容器的8080和50000端口直接映射到本机的8080和50000端口:
docker run -p 8080:8080 -p 50000:50000 -v /usr/local/work/jenkins:/var/jenkins_home --name j01 -idt jenkins
- 执行命令docker logs -f j01查看容器的控制台日志,看到如下信息表示jenkins服务启动成功:
Dec 31, 2017 6:29:24 AM jenkins.install.SetupWizard init
INFO:
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
f0f2e35d549f49b486b0ca2bdf3756d6
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
Dec 31, 2017 6:29:29 AM hudson.model.UpdateSite updateData
INFO: Obtained the latest update center data file for UpdateSource default
Dec 31, 2017 6:29:30 AM hudson.model.DownloadService$Downloadable load
INFO: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller
Dec 31, 2017 6:29:30 AM hudson.model.UpdateSite updateData
INFO: Obtained the latest update center data file for UpdateSource default
Dec 31, 2017 6:29:30 AM hudson.WebAppMain$3 run
INFO: Jenkins is fully up and running
--> setting agent port for jnlp
--> setting agent port for jnlp... done
Dec 31, 2017 6:29:33 AM hudson.model.DownloadService$Downloadable load
INFO: Obtained the updated data file for hudson.tools.JDKInstaller
Dec 31, 2017 6:29:33 AM hudson.model.AsyncPeriodicWork$1 run
INFO: Finished Download metadata. 11,856 ms
访问服务
我的LINUX电脑IP是192.168.119.155,在浏览器输入http://192.168.119.155:8080,即可访问到jenkins的服务,由于密码还没有设置,将会看到下图信息:
页面提示密码文件的位置:/var/jenkins_home/secrets/initialAdminPassword,由于我们已经将/var/jenkins_home目录映射到本机的/usr/local/work/jenkins目录,所以密码文件在当前电脑的位置是:/usr/local/work/jenkins/secrets/initialAdminPassword;
打开此文件后发现只有一行内容,复制后粘贴到页面唯一的输入框中,再点击右下角的”Continue”按钮;
在等待页面停留数十秒后,出现以下页面,左边按钮是直接安装推荐的插件配置,右边按钮是自己选择所需的插件,这里我们点击左边按钮,把推荐的插件装了:
如下图,jenkins开始逐个安装插件:
如下图,提示创建一个管理员,填写完相关信息并提交,就可以使用jenkins服务了:
安装maven
点击“系统管理” -> “Global Tool Configuration”,如下图:
新建一个maven,填写完毕后点击底部的”Apply”再点击“保存”,记得勾选“自动安装”,如下图:
安装mave插件
点击“系统管理” -> 管理插件”,如下图:
选中第二个tab”可选插件”,在右上角输入框中输入“Maven Integration plugin”,页面上就会显示出”Maven Integration plugin”这个插件,勾选后点击下面的“直接安装”按钮,即可安装maven插件,如下图:
配置SSH登录github
后面的实战中,我们会将代码放到github上,所以此处要做ssh登录的配置,假设您在git上的注册邮箱是”abcdef@gmail.com”,账号是”abcdef”,您需要执行以下步骤:
- 在控制台执行以下命令登录到jenkins容器:
docker exec -it j01 /bin/bash
- 登录到容器后,执行以下命令产生SSH证书:
ssh-keygen -t rsa -C "abcdef@gmail.com"
会出现几个询问,直接按回车键继续;
- 执行以下命令配置全局用户信息的账号:
git config --global user.name "abcdef"
- 执行以下命令配置全局用户信息的邮箱:
git config --global user.email abcdef@gmail.com
- 公钥被存储到以下位置,打开复制所有内容,然后登录git,添加到SSH keys中:
/var/jenkins_home/.ssh/id_rsa.pub
至此,git配置就完成了,接下来我们创建一个任务,来试试项目项目构建的功能;
git项目
为了体验jenkins自动拉取代码和构建项目,我在git上准备了一个spring boot的web工程,内容很简单只有一个controller,地址是:git@github.com:zq2599/jenkinsdemo.git
构建maven项目
回到主页,新建一个任务,选择”构建一个maven项目”,如下图:
新的页面中,“源码管理”位置选择”Git”,在”Repository URL”位置输入工程地址”git@github.com:zq2599/jenkinsdemo.git”,再点击“Add”按钮,选择”Jenkins”,如下图:
在弹出的页面中输入git登录的信息,注意选择SSH登录,用户名要用生成SSK KEY的时候的参数,如下图:
配置完成后,依次点击最下面的”Apply”和”保存”两个按钮,完成存档并退出编辑页面;
构建
如下图红框所示,在任务列表页面,点击任务名称,进入任务详情页:
在任务详情页,如下图红框所示,点击“立即构建”:
此时项目就开始构建了,如果想看清楚具体的执行情况,可以点击下图中的红框位置,会跳转到控制台信息输出的页面:
如果git配置正确,并且web工程本身可以编译成功,那么会看到控制台页面提示的构建成功信息,如下图:
验证构建结果
为了验证构建结果,我们可以去把编译jar包下载下载试试,下载地址如下图所示:
点击target文件夹后,可以看到构建好的文件:mavendockerplugindemo-0.0.1-SNAPSHOT.jar,点击这个文件即可通过浏览器下载到本地;
本地打开控制台,进入mavendockerplugindemo-0.0.1-SNAPSHOT.jar文件所在的目录,执行以下命令即可启动这个spring boot的web工程,端口号为8081:
java -jar mavendockerplugindemo-0.0.1-SNAPSHOT.jar --server.port=8081
- 1
可以看到熟悉的springboot启动信息,如下图:
在浏览器输入:localhost:8081,可以正常访问此web服务,如下图:
至此,基本的Jenkins服务搭建和使用的实战都完成了,后面的章节中,我们一起继续实战Jenkins更丰富的功能;
docker下的Jenkins安装和体验【转】的更多相关文章
- Docker下使用disconf:极速体验
Docker下的disconf实战全文链接 <Docker搭建disconf环境,三部曲之一:极速搭建disconf>: <Docker搭建disconf环境,三部曲之二:本地快速构 ...
- Docker下搭建Jenkins构建环境
首先需要搭建好docker环境的linux系统,这个教程多如牛毛,在此不再赘述. 然后编写一个dockerfile来生成一个镜像,dockerfile其实就是一系列命令的集合,有点像windows的批 ...
- docker下centos7编译安装ffmpeg
1.安装基础命令 docker下精简版centos没有make等命令,先安装: yum -y install gcc automake autoconf libtool make yum instal ...
- Mac下的Jenkins安装
安装方式 1)通过命令行安装 brew install jenkins,可能会遇到先更新 brew 的情况 https://brew.sh/index_zh-cn: 2)通过 pkg 安装,官方 ...
- Docker 下Elasticsearch 的安装 和ik分词器
(1)docker镜像下载 docker pull elasticsearch:5.6.8 (2)安装es容器 docker run -di --name=changgou_elasticsearch ...
- Docker下MySQL的安装
1 概述 本文讲述了如何利用Docker去安装MySQL,以及MySQL自定义配置文件的相关设置. 2 安装Docker 首先安装Docker并开启服务: systemctl start docker ...
- Docker下的mysql安装指令(Mac)
工具 简介 对于Docker,绝对是开发人员的一款利器!当下特别火热的虚拟化技术.都说不知Docker是什么,作为IT人就out了. 关于Docker 是什么.及其基础学习可以参考: <Do ...
- docker下gitlab(redis)安装配置使用(完整版)
ps:如果是云主机,需添加安全组开放相应端口(关联相应实例),防火墙开放端口或直接关闭 https://www.jianshu.com/p/080a962c35b6 将其中external_url换为 ...
- Docker下使用disconf:细说demo开发
Docker下的disconf实战全文链接 <Docker搭建disconf环境,三部曲之一:极速搭建disconf>: <Docker搭建disconf环境,三部曲之二:本地快速构 ...
随机推荐
- nuget sources
https://docs.microsoft.com/en-us/nuget/tools/cli-ref-sources https://gemfury.com/help/nuget-server/ ...
- Python类变量,实例变量,类方法,实例方法,静态方法的分析
Python作为动态语言,跟静态语言如c/c++有很大区别,其中的一个重要的特性就是Python的变量无需声明直接可用.同样,类的成员变量无需声明,直接可用.目的是为了动态语言跟灵活,在思路想到的时候 ...
- Spring MVC 实践笔记
1.了解 Maven 的用法:http://spring.io/guides/gs/maven/ .这篇英文非常详细的演示了 Maven 的用法,在命令行下执行.注意,运行Maven的时候,Maven ...
- kubernetes源码分析 -- kube-proxy
Kube-proxy需要在每一个minion结点上运行.他的作用是service的代理,负责将业务连接到service后面具体执行结点(endpoints). 我们列一下体现kube-proxy ...
- Java虚拟机组成详解
导读:详细而深入的总结,是对知识“豁然开朗”之后的“刻骨铭心”,想忘记都难. Java虚拟机(Java Virtual Machine)下文简称jvm,上一篇我们对jvm有了大体的认识,进入本文之后我 ...
- ADC和RTC的寄存器的读取
ADC的寄存器读取,int adc_read(void){ int result; #if ADSTART==0 result = ADC.ADCDAT0&0x3ff; while(!(ADC ...
- 真正在线编辑的在线web编辑器
最近正在研究开发一款在线web编辑器架构,这是一款真正傻瓜式的web编辑器,可以在正常浏览页面的情况进行编辑,经过测试,对于一般网页页面来说非常好用方便,操作更简单. 一般的在线web编辑器虽说提供了 ...
- Android----- 版本更新和 服务器下载新版本APK并安装
前段时间有朋友问我版本更新的问题,所以来写一篇版本更新和APK下载并安装的博客. 版本更新,几乎在所有的项目中都用的到,一般是这样的流程,当进入APP首页是便会检测版本是否为最新版本,不是则提示你下载 ...
- cocos对象池的使用
enemy.js cc.Class({ extends: cc.Component, properties: { enemySpeed: 0, //设置加速度 }, //初始化当前节点的y坐标 ini ...
- Testing shell commands from Python
如何测试shell命令?最近,我遇到了一些情况,我想运行shell命令进行测试,Python称为万能胶水语言,一些自动化测试都可以完成,目前手头的工作都是用python完成的.但是无法从Python中 ...