docker 中安装jenkins 并配置构建工具

前景提要

jenkins有大致三种方式安装启动

  1. 下载war部署在linux宿主机tomcat等web服务器上
  2. 下载war包直接用java命令运行
  3. 部署在docker中

部署在docker中的好处

  1. docker 技术炽手可热,学习下必须的
  2. 占用的空间小,方便移植
  3. jenkins存在漏洞, 之前我宿主机被挖矿病毒入侵(贼难受,我就1核2g的渣渣配置都被当肉鸡),cpu天天99%,敲命令都卡。存放在docker中提高安全性(自我感觉,至少现在还没在中病毒)

大致思路

首先 宿主机需要安装项目构建所需工具(maven、node、npm…)
然后 将构建工具文件挂载到docker 中的/usr/bin/ 文件夹下
其次 构建时需要给jenkins足够 的权限

dockefile 构建 jenkins

原因:
jenkins在进行集成部署时,很多 的构建工具、文件夹需要root权限,也需要配置很多的工具(maven、node、npm…)所以要对环境变量、权限进行详细配置

jenkins 镜像有很多,只要docker search jenkins就行,版本很多选择下载次数多就行,因为官方的jenkins镜像版本较早,所以选择排名第二 的jenkins/jenkins

假设现在的宿主机中各个工具目录如下
git_home=/home/jenkins/software/git-2.21.0
maven_home=/home/jenkins/software/apache-maven-3.5.4
node_home=/home/jenkins/software/node-v10.15.3-linux-x64

创建Dockerfile如下

FROM jenkins/jenkins
# 开启权限,后面构建需要
USER root
# 构建时方便以管理员方式运行
RUN apt-get update \&& apt-get install -y sudo
USER jenkins

运行命令如下

docker run -d -p 8084:8080 \--restart always  \-u root \-v /home/jenkins/:/var/jenkins_home/ \-v $MAVEN_HOME/bin/mvn:/usr/bin/mvn \-v $NODE_HOME/bin/node:/usr/bin/node \-v $NODE_HOME/bin/npm:/usr/bin/npm--name hgf_jenkins  \
${镜像id}

此时需要验证下以上配置工具是否可以以root权限使用

#进入容器
docker exec -it ${容器id} /bin/bash
#首先验证非root用户是否能执行
npm -v
mvn -v
node -v
....
# 如果报错,应该是挂载执行的文件不对#验证root能否运行
sudo npm -v
sudo node -v
sudo mvn -v
.....#如果其中有些不行,报错如下以(mvn为例)
sudo: mvn: command not found
sudo ln -s ${docker中MAVEN_HOME}/bin/mvn /usr/bin/mvn

现在大功告成,可以在jenkins页面中下载一些常用的jenkins插件

publish over ssh:远程连接工具

git parameter: git 参数化部署,可以选择分支部署

Version Number:优雅的生成版本号

maven plugin:maven构建工具

最后这里说下为啥我非要以root权限执行工具

首先那些工具也不一定非要用挂载的方式,jenkins配置中也可以下载所需工具,但是因为我的宿主机是腾讯云的最低挡的,想想如果其他docker也需要这些工具,那么岂不是每个docker中都需要单独下载那些工具,docker容器会占用更大的空间而且冗余,在下可是精益求精的程序员(主要是穷~~~~),那么挂载的方式可以让各个docker公用一个工具。
root权限运行是因为有些工具构建时需要root权限,比如说node,npm,如果有更好的方式欢迎留言,谢谢~

dockerfile安装jenkins 并配置构建工具(node、npm、maven、git)相关推荐

  1. 利用Jenkins pipeline配置测试工具

    利用Jenkins pipeline 配置测试工具一般来说包含以下几个步骤: 1, 准备被测代码: 2, 安装测试工具,进行相应配置: 3, 安装Jenkins 对应插件,并且进行配置: 4, 修改文 ...

  2. 安装Jenkins及配置自由风格自动打包部署

    安装Jenkins 拉取Jenkins镜像 docker pull jenkinsci/blueocean 运行镜像 docker run -u root -d -p 8080:8080 -p 500 ...

  3. MAC终端安装grunt--javascript世界得构建工具

    祝贺我成为前端啦!~~从年前得小测试到今年得前端,成功转型!我真是一个进步得好青年,好少女! 这两天出去受虐,面了两家前端,表现非常不好,还是回到我现在得公司好好沉淀技术,做前端,要经常性得整理总结, ...

  4. 零配置构建工具:parcel

    更多内容欢迎来到博客:https://imjianjian.github.io 为什么学习parcel 17年12月6日,parcel发布了第一个正式版本,目前已经在GitHub上收获了17.7k+个 ...

  5. Docker安装Jenkins实现自动化构建部署到Tomcat

    安装Docker 直接装一个docker-toolbox就好了,下载最下面的最新版 http://mirrors.aliyun.com/docker-toolbox/windows/docker-to ...

  6. vue使用到的工具node npm cnpm pnpm yarn管理

    vue前端框架搭建项目使用到的工具 1.node.js nodejs是JavaScript的一个运行环境,使得我们在前端写的js代码能够在服务端运行. 相较于传统的web开发,前端使用js开发,服务端 ...

  7. 【记录】jenkins 安装及环境配置(二)

    [记录]jenkins 安装及环境配置(二) Jenkins插件安装 Jenkins环境配置 maven配置 JDK配置 方案一 方案二 git配置 配置SSH连接服务器 添加凭证 上一篇[记录]je ...

  8. Docker中安装Jenkins实时发布.net core 项目(一)

    Docker中安装Jenkins实时发布.net core 项目 安装docker 懒人篇 手动安装 dockerfile安装jenkins 常规安装jenkins jenkins的安装 搜索jenk ...

  9. Win2008 R2下使用jenkins搭建vc构建

    本文的目标是在windows Server 2008 R2中,搭建一个Visual Studio 2010项目的每日构建.发布环境,实现代码的自动编译.打包.数字签名.发布,其中使用jenkins作为 ...

  10. java+构建+工具+Ant+Maven+Gradle

    java+构建+工具+Ant+Maven+Gradle Ant+Maven+Gradle+............ 目前: Ant已经销声匿迹.Maven也没落了,而Gradle的发展则如日中天. M ...

最新文章

  1. JDK5中的控制台输入
  2. 【原创】【推荐】《ASP.NET 3.5+SQL Server网站模块化开发全程实录》出版记
  3. ASP.NET MVC 二维码生成(ThoughtWorks.QRCode)
  4. dat文件读取_微信dat文件如何查看
  5. 华硕服务器显示模块,华硕远程管理模块 ASMB4-iKVM 华硕服务器主板专用 现货 IPMI...
  6. Linux中exit与_exit的区别
  7. react学习(15)---antdesign form两种验证
  8. 图像处理基础系列-01
  9. 了解FPS屏幕刷新率
  10. TubeMQ 万亿级分布式消息中间件
  11. mysql 存储过程:提供查询语句并返回查询执行影响的行数
  12. spark实战@wordcount-处理目录下的多个文件
  13. 你想要的宏基因组-微生物组知识全在这(2020.9)
  14. 《2021爱分析·中国RPA应用趋势报告》正式发布
  15. 母婴群如何引流?孕妈群如何引流?母婴群怎么运营好?
  16. 2020-10-04
  17. android自定义加载旋转框
  18. 计算机网络——透明网桥算法
  19. qq说说时间轴php实现,qq空间时间轴 PHP实现时间轴函数代码
  20. 用计算机怎么计算税率表,个税税率表计算器

热门文章

  1. 数组的数据查找c语言,【查找数组面试题】面试问题:c语言实现数据… - 看准网...
  2. 阿里云云计算:4 阿里云产品架构
  3. 翻译:swift 5初始化 被忽略的Convenience便捷初始化、Required和继承
  4. Mac大文件分包split与合并cat,加密压缩zip
  5. 创建CocoaPods的Framework Swift组件化之路(上)
  6. 四数之和 leetcode
  7. 图解Python机器学习pdf 中日双语 第1页
  8. 均方根误差RMSE 均方根值(RMS)+ 均方根误差(RMSE)+标准差(Standard Deviation)
  9. Tensorflow游乐场
  10. 【 Codeforces Round #551 (Div. 2) D】Serval and Rooted Tree【树形DP】