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开发环境,因为第三方模块的依赖复杂,不好通过离线安装包的方式安装 ...
随机推荐
- python 之分发包
setuptools python包的根目录设置setup.py from setuptools import setup, find_packages setup( name = 'm' versi ...
- UNION ALL合表查询
有时候需要连表查询数据,可以使用union all来做合表. 语法: SELECT column_name FROM table1UNION ALLSELECT column_name FROM ta ...
- 打印pid,写着玩。
#include <stdio.h> #include <string.h> #include <dirent.h> #include <limits.h&g ...
- 重新认识JavaScript里的创建对象(一)
一.序 面向对象有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.ECMA-262把对象定义为"无序属性的集合,其属性可以包含基本值.对象或者函数&quo ...
- c#遍历文件夹获得所有文件
在c#中,想要获得一个文件夹下的所有子目录以及文件十分简单. 首先,获取目录的情况下,DirectoryInfo.GetDirectories():获取目录(不包含子目录)的子目录,返回类型为Dire ...
- ios app网址说明
URLforBrowser = 'https://itunes.apple.com/cn/app/wan-huo-shi-shang-zhu-li-ren/id1077705***'; URLfori ...
- CF #344 D. Messenger KMP/Z
题目链接:http://codeforces.com/problemset/problem/631/D 给定两个压缩形式的字符串,如a3b5a4k7这样的形式 问A在B中出现次数. 分类讨论,如果A是 ...
- 需求收集过程实例之 - GF Phase 1
正统的需求过程是怎样呢?各位看客有兴趣可以问问google 百度.本人的体会是理论很清晰,现实很混沌.这篇随笔讲述的是我参与的几个项目的需求收集过程.有的很顺利,有的却是乱中求生.但是不管怎样,最终这 ...
- 计算机程序的思维逻辑 (82) - 理解ThreadLocal
本节,我们来探讨一个特殊的概念,线程本地变量,在Java中的实现是类ThreadLocal,它是什么?有什么用?实现原理是什么?让我们接下来逐步探讨. 基本概念和用法 线程本地变量是说,每个线程都有同 ...
- Less与Sass
less 1.变量 声明变量:@变量名:变量值 使用变量:@变量名 >>>Less中变量的类型 ①数字类:1 100px ②字符串:无引号字符串[red] 有引号字符串[&qu ...