Docker下搭建Jenkins构建环境
首先需要搭建好docker环境的linux系统,这个教程多如牛毛,在此不再赘述。
然后编写一个dockerfile来生成一个镜像,dockerfile其实就是一系列命令的集合,有点像windows的批处理文件,
搭建Jenkins构建环境需要安装jdk、maven、tomcat、jenkins,另外还安装了GIT,用来构建GIT来源的代码,内容如下:
FROM centos:7
# author info
MAINTAINER xulijian 514045152@qq.com
# install wget to download files
RUN yum install wget -y
# install git
RUN yum install git -y
RUN cd /opt
# download jdk
RUN wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
# download maven
RUN wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz
# download tomcat
RUN wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.15/bin/apache-tomcat-8.5.15.tar.gz
# unzip jdk
RUN tar -xvf jdk-8u131-linux-x64.tar.gz -C /opt/
# unzip maven
RUN tar -xvf apache-maven-3.5.0-bin.tar.gz -C /opt/
# unzip tomcat
RUN tar -xvf apache-tomcat-8.5.14.tar.gz -C /opt
# set environment
ENV JAVA_HOME /opt/jdk1.8.0_131
ENV MAVEN_HOME /opt/apache-maven-3.5.0
ENV CLASSPATH .:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
# download jenkins
RUN wget -P /opt/apache-tomcat-8.5.14/webapps http://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.46.2/jenkins.war
# startup tomcat
CMD /opt/apache-tomcat-8.5.14/bin/catalina.sh run
# expose memcached port
EXPOSE 8080
然后执行构建命令
docker build -t liuge1988/jenkins:base -f /opt/test/dockerfile /opt/test
-t 要生成的镜像, user/repo:tag
-f dockerfile文件所在路径
/opt/test 可以是任意目录,要同步拷贝到新生成镜像的目录,用于初始化目录内容
执行完成之后,查看镜像是否正确生成。
docker images | grep Jenkins

镜像生成之后,可以将镜像存储到docker hub, 以后要用的时候直接从docker hub上拉取下拉就好了
上传到docker hub,需要注册一个docker hub账号, 键入命令
docker login
根据提示输入用户名和密码,如果提示login success,则已经登录成功。
然后执行推送命令,将镜像上传到docker hub
docker push user/repo:tag
user/repo:tag 用户/仓库:镜像标签,如liuge1988/jenkins:base
生成镜像之后,就可以用此镜像启动一个具体的容器了。
docker run -d -i -t --name jenkins_procloud -p 8308:8080 liuge1988/jenkins:base
启动完成之后,执行命令查看容器是否运行成功。
docker images | grep Jenkins

容器其实就是一个轻量的linux,进入容器后跟linux系统是一样的,如果想进入容器,进行一些操作,可以执行以下命令。
docker exec -it containerId /bin/bash

要退出容器输入exit或Ctrl + D 就可以了。
进入tomcat的bin目录,启动tomcat

启动好tomcat之后就可以通过 主机ip:端口/jenkins 来访问jenkins了。
http://192.168.1.111:8308/jenkins
作者:朝雨忆轻尘
出处:https://www.cnblogs.com/xifengxiaoma/
版权所有,欢迎转载,转载请注明原文作者及出处。
Docker下搭建Jenkins构建环境的更多相关文章
- 用Vagrant创建Jenkins构建环境
这是一个关于Vagrant的学习系列,包含如下文章: Vagrant入门 创建自己的Vagrant box 用Vagrant搭建Jenkins构建环境 用Vagrant和Ansible搭建持续交付平台 ...
- Linux 使用 docker 下搭建xunsearch 搜索引擎服务
Linux 使用 docker 下搭建 xunsearch 搜索引擎服务 安装 docker 环境(菜鸟教程有说明) 安装docker说明 下载并运行 xunsearch 的服务端:docker安装x ...
- 使用Docker快速搭建PHP开发环境
最近有个同事找过来,希望我对在很早之前写的一个PHP网站上增加一些功能,当时开发使用xampp构建的本地开发环境,但是现在我的笔记本电脑已经更新,没有当时的开发环境.本着尽量不往电脑上装无用软件的原则 ...
- 【原创】windows下搭建vue开发环境+IIS部署
[原创]win10下搭建vue开发环境 如果要转发,请注明原作者和原产地,谢谢! 特别说明:下面任何命令都是在windows的命令行工具下进行输入,打开命令行工具的快捷方式如下图: 详细的安 ...
- windows下搭建vue开发环境+IIS部署
原创]win10下搭建vue开发环境 https://www.cnblogs.com/ixxonline/p/6007885.html 特别说明:下面任何命令都是在windows的命令行工具下进行输 ...
- Window下搭建foundation apps环境
Window下搭建foundation apps环境 框架:AngularJS.Foundation, 构建工具:Gulp, 开发环境:node.js. 操作系统:windows (一)环境准备 1 ...
- 一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- 1.WIN10下搭建vue开发环境
WIN10下搭建vue开发环境 详细的安装步骤如下: 一.安装node.js 说明:安装node.js的windows版本后,会自动安装好node以及包管理工具npm,我们后续的安装将依赖npm工具. ...
- PyCharm使用之利用Docker镜像搭建Python开发环境
在我们平时使用PyCharm的过程中,一般都是连接本地的Python环境进行开发,但是如果是离线的环境呢?这样就不好搭建Python开发环境,因为第三方模块的依赖复杂,不好通过离线安装包的方式安装 ...
随机推荐
- 【Flex】编辑器的缩放功能(绝对定位和相对定位)
一.横向的ide拖动缩放效果 <?xml version="1.0" encoding="utf-8"?> <s:WindowedApplic ...
- 老李分享:大数据测试中java和hadoop关系
Hadoop的创始人是Doug Cutting, 同时也是著名的基于Java的检索引擎库Apache Lucene的创始人.Hadoop本来是用于著名的开源搜索引擎Apache Nutch,而Nutc ...
- Sphinx安装流程及配合PHP使用经验
1.什么是Sphinx Sphinx是俄罗斯人Andrew Aksyonoff开发的高性能全文搜索软件包,在GPL与商业协议双许可协议下发行. 全文检索式指以文档的全部文本信息作为检索对象的一种信息检 ...
- PHP对象相关知识点的总结
对象传递:一种说法是"PHP对象是通过引用传递的",更准确的说法是别名(标识符)传递,即它们都保存着同一个标识符(ID)的拷贝,这个标识符指向同一个对象的真正内容. <?ph ...
- 实现高效的GPRS驱动程序
1. 引言 用过几款GPRS模块,也从淘宝上买过多个GPRS模块,一般的都会送一个驱动程序和使用demo,但是代码质量都较低. 回头看了下几年前使用的GPRS代码,从今天的角度来看,也就是买模块赠送一 ...
- Mysql清理二进制日志的技巧
1:二进制日志 二进制日志记录了所有的DDL(数据定义语言)语句和DML(数据操作语言)语句,但是不记录包括数据查询的语句.语句以"事件"的形式保存,它描述了数据的更改过程,此日志 ...
- sqlldr用法
SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件迁移到ORACLE数据库中.SQL*LOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PAR ...
- C#调用WebService接口实现天气预报在web前端显示
本文使用web (C#)调用互联网上公开的WebServices接口: (http://www.webxml.com.cn/WebServices/WeatherWebService.asmx)来实现 ...
- select下拉二级联动
function opt(){ var id = $("#ids").val(); $.ajax({ type: "POST", url: "$ ...
- ios 获取当前ViewController
- (UIViewController*)getpresentVC:(UIWindow *)window{ if ([window.rootViewController class]==[UITabB ...