详解Docker下搭建Jenkins构建环境

发布时间 - 2026-01-11 01:11:50    点击率:

首先需要搭建好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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# docker搭建jenkins  # jenkins构建docker  # docker  # jenkins  # 关于docker启动jenkins环境的问题  # 使用Docker+jenkins+python3环境搭建超详细教程  # 基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境的详  # docker环境下安装jenkins容器的详细教程  # Docker环境搭建Jenkins在构建任务时控制台日志出现中文乱码的问题  # 从零搭建docker+jenkins+node.js自动化部署环境的方法  # CentOS服务器部署Docker+Jenkins持续集成环境的方法  # 镜像  # 就可以  # 在此  # 多如牛毛  # 可以用  # 要用  # 输入用户名  # 有点像  # 到新  # 大家多多  # 是否正确  # 则已  # 根据提示  # 批处理文件  # 就好了  # 安装了  # 是一样的  # 来访问  # http  # cookie 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  如何基于云服务器快速搭建网站及云盘系统?  EditPlus中的正则表达式实战(5)  Laravel如何自定义分页视图?(Pagination示例)  Laravel如何使用Sanctum进行API认证?(SPA实战)  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  如何在阿里云通过域名搭建网站?  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  Laravel Fortify是什么,和Jetstream有什么关系  制作公司内部网站有哪些,内网如何建网站?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  微信小程序 require机制详解及实例代码  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  香港服务器租用费用高吗?如何避免常见误区?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Laravel如何实现API速率限制?(Rate Limiting教程)  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  简单实现Android文件上传  Laravel API资源类怎么用_Laravel API Resource数据转换  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  如何在Ubuntu系统下快速搭建WordPress个人网站?  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  详解jQuery停止动画——stop()方法的使用  JavaScript实现Fly Bird小游戏  中山网站制作网页,中山新生登记系统登记流程?  Python数据仓库与ETL构建实战_Airflow调度流程详解  如何快速生成橙子建站落地页链接?  企业网站制作这些问题要关注  Laravel如何配置任务调度?(Cron Job示例)  如何快速完成中国万网建站详细流程?  Laravel distinct去重查询_Laravel Eloquent去重方法  电商网站制作价格怎么算,网上拍卖流程以及规则?  Laravel如何集成Inertia.js与Vue/React?(安装配置)  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  微信小程序 wx.uploadFile无法上传解决办法  如何用美橙互联一键搭建多站合一网站?  JS碰撞运动实现方法详解  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  如何基于云服务器快速搭建个人网站?  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  如何在阿里云香港服务器快速搭建网站?  php485函数参数是什么意思_php485各参数详细说明【介绍】  nginx修改上传文件大小限制的方法  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  JavaScript如何实现继承_有哪些常用方法