原文地址: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安装和体验【转】的更多相关文章

  1. Docker下使用disconf:极速体验

    Docker下的disconf实战全文链接 <Docker搭建disconf环境,三部曲之一:极速搭建disconf>: <Docker搭建disconf环境,三部曲之二:本地快速构 ...

  2. Docker下搭建Jenkins构建环境

    首先需要搭建好docker环境的linux系统,这个教程多如牛毛,在此不再赘述. 然后编写一个dockerfile来生成一个镜像,dockerfile其实就是一系列命令的集合,有点像windows的批 ...

  3. docker下centos7编译安装ffmpeg

    1.安装基础命令 docker下精简版centos没有make等命令,先安装: yum -y install gcc automake autoconf libtool make yum instal ...

  4. Mac下的Jenkins安装

    安装方式 1)通过命令行安装   brew install jenkins,可能会遇到先更新 brew 的情况  https://brew.sh/index_zh-cn: 2)通过 pkg 安装,官方 ...

  5. Docker 下Elasticsearch 的安装 和ik分词器

    (1)docker镜像下载 docker pull elasticsearch:5.6.8 (2)安装es容器 docker run -di --name=changgou_elasticsearch ...

  6. Docker下MySQL的安装

    1 概述 本文讲述了如何利用Docker去安装MySQL,以及MySQL自定义配置文件的相关设置. 2 安装Docker 首先安装Docker并开启服务: systemctl start docker ...

  7. Docker下的mysql安装指令(Mac)

    工具   简介 对于Docker,绝对是开发人员的一款利器!当下特别火热的虚拟化技术.都说不知Docker是什么,作为IT人就out了. 关于Docker 是什么.及其基础学习可以参考: <Do ...

  8. docker下gitlab(redis)安装配置使用(完整版)

    ps:如果是云主机,需添加安全组开放相应端口(关联相应实例),防火墙开放端口或直接关闭 https://www.jianshu.com/p/080a962c35b6 将其中external_url换为 ...

  9. Docker下使用disconf:细说demo开发

    Docker下的disconf实战全文链接 <Docker搭建disconf环境,三部曲之一:极速搭建disconf>: <Docker搭建disconf环境,三部曲之二:本地快速构 ...

随机推荐

  1. oracle的 分表 详解 -----表分区

    此文从以下几个方面来整理关于分区表的概念及操作:         1.表空间及分区表的概念         2.表分区的具体作用         3.表分区的优缺点         4.表分区的几种类 ...

  2. dubbo-admin与多注册中心(注册中心集群)

    在使用dubbo时,注册中心是一个必要的架构组成成员.当我们的注册中心没有采取集群时,如何在dubbo-admin中配置,我们可以根据dubbo官方文档,很快找到我们的答案. 但是当注册中心集群之后怎 ...

  3. Continue SQL query even on errors

    trymysql --force < sample_data.sql Mysql help section says -f, --force         Continue even if w ...

  4. 字典树应用 - poj1002

    字典树应用 - poj 1002 Description Businesses like to have memorable telephone numbers. One way to make a ...

  5. 在php中define和const定义常量的区别

    define和const都可以用来定义常量,但是const定义常量的时候大小写敏感,而define可以通过设置第三个参数为true的时候来取消大小写敏感! 如图: 引用地址:点这里

  6. BZOJ4767 两双手

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  7. TileMode(平铺模式) 枚举的成员:

    TileMode(平铺模式) 枚举的成员:   成员名称 说明   FlipX 与 Tile 相同,只不过图块的交替列被水平翻转. 基本图块本身不翻转.   FlipXY FlipX 和 FlipY ...

  8. ASP.NET Core and .NET Core Library Support

    ASP.NET Core and .NET Core Library Support 详情参见:https://github.com/linezero/NETCoreLibrary/blob/mast ...

  9. Mysql解压版配置环境等

    背景故事:安装版的mysql和我的本本有仇,最后一步老卡死 1.首先先把下载好的压缩包解压,如下图:

  10. opencv图像处理

    #coding=utf-8 import cv2 import numpy as np img1 = cv2.imread("3.jpg") img2 = cv2.imread(& ...