使用jenkins来跑docker image的惨痛经历
记录一下我使用jenkins来跑docker container的艰辛路程吧,是照着jenkins官网的[文档](https://jenkins.io/doc/tutorials/build-a-java-app-with-maven/)做的,同时参考了multibranch情况下应该如何写jenkinsFile,也查了很多博客,想做成的效果是jenkins可以自动拉取github上的项目,根据分支名不同使用不同的端口来运行程序。
agent {
docker {
image 'maven:3-alpine'
args '-v /root/.m2:/root/.m2'
}
}
先说下jenkinsFile中的这条命令,args '-v /root/.m2:/root/.m2',它将主机中的root/.m2目录映射到了docker中的container中,这里指的就是maven:3-alpine,因为maven:3-alpine这个container在运行完之后,就会被remove掉,如果映射了仓库目录的话,就没必要每次run job的时候重新下载jar包了,官网也是这样介绍的,这个地方前面应该替换成自己本地的maven仓库目录。jenkins官网说要安装jenkins,要先安装docker,后来我发现即使没装docker,也可以安装jenkins,在8080端口启动服务的,至于docker的相关知识,docker官网的教程可以说是非常详细了。我最后是通过java -jar xxx.jar来运行java程序的,就这样job一直运行着,job显示是红色的图标,端口一直监听着提供服务,虽然功能是实现了,但不是很合适。
说下我遇到的一个大坑,就是关于权限的问题,默认jenkins服务是以jenkins用户运行着的,我想去文件目录里验证下到底有没有jenkins用户,没找到,还以为没有呢,后来才知道有些linux的用户名就是没有在文件中记录的,我是通过在跑jenkins任务的时候,在shell中输出了当前用户查看的,后来我通过更改jenkins的配置文件,使得运行jenkins服务的用户为root,但还是报权限错误,场景是,我在我的spring boot 项目中添加了一个shell文件,jenkins在跑job的时候拉取我github上的项目到本地jenkins的家目录workspace里面,拉取了很多次,我到那个目录去查看那个shell文件的可执行权限,没有可执行权限啊,让我很是崩溃,直接去改源文件的权限,文件模式发生了变化,但git好像无法提交,后来我采取的方法是,删除掉原来的shell文件,重新建一个shell文件,建好之后,就更改它的权限,然后提交,权限问题就解决了。
使用jenkins来跑docker image的惨痛经历的更多相关文章
- Jenkins + docker ,容器中跑docker服务
1. 宿主机:安装docker 2. 启动jenkins服务 https://jenkins.io/download/ Jenkins官网找自己需要的镜像版本号进行使用. docker run -it ...
- 使用Jenkins来构建Docker容器
使用Jenkins来构建Docker容器(Ubuntu 14.04) 当开发更新了代码,提交到Gitlab上,然后由测试人员触发Jenkins,于是一个应用的新版本就被构建了.听起来貌似很简单,dua ...
- Jenkins中执行docker命令报错
Cannot connect to the Docker daemon. Is the docker daemon running on this host? 在配置Jenkins从Gitlab自 ...
- MacOS~jenkins里解决docker执行权限问题
一 全局配置项设置 需要添加全局变量项,例如名称docker,路径/usr/local 添加一个jenkinsfile文件,用于运行docker命令 pipeline { agent any tool ...
- ubuntu 中安装jenkins,基于docker运行jenkins
本文是在ubuntu环境下安装jenkins,jenkins运行在docker容器中,至于docker如何安装,本文不再描述,大家可以上网查询下,如何安装docker,下面先放上一个使用jenkin ...
- jenkins安装启动(docker)
mkdir /opt/jenkins -pvim /opt/jenkins/Dockerfile FROM jenkins/jenkins:lts EXPOSE 8080 50000 vim /opt ...
- 从零开始使用Jenkins来构建Docker容器(Ubuntu 14.04)
当开发更新了代码,提交到Gitlab上,然后由测试人员触发Jenkins,于是一个应用的新版本就被构建了.听起来貌似很简单,duang~duang~duang,我用了是这样,你们用了也是这样,看起来这 ...
- jenkins+git实现docker持续部署
jenkins所做的事情很简单,就拿我现在的情况来说吧,(1).每次开发完成,我都会push到我的远程仓库:(2).我再将我push到远程仓库的代码pull到我的测试服务器上:(3).在测试服务器上, ...
- Jfrog Artifactory jenkins 流水线使用docker的方式培训[暂未成功]
1. 创建jenkins的流水线 2. 创建artifactory的镜像仓库 3. 创建generic的仓库上传需要的 war包还有tar包. 4. 修改pipeline的 脚本 主要修改的地方. 修 ...
随机推荐
- 蓝桥杯 基础练习 BASIC-22 FJ的字符串
基础练习 FJ的字符串 时间限制:1.0s 内存限制:512.0MB 问题描述 FJ在沙盘上写了这样一些字符串: A1 = “A” A2 = “ABA” A3 = “ABACABA” A4 = ...
- 【转】 Pro Android学习笔记(八四):了解Package(3):包间数据共享
目录(?)[-] 共享User ID的设置 共享资源例子 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowing ...
- maven中maven dependencies中依赖出现了项目
maven 中maven dependencies中依赖出现了项目,把依赖的项目关掉,项目消失,但是还是无法打包 ,出现的错误如图.说明:依赖的项目为project-dao 打包的项目为projec ...
- #pragma pack 在BITMAP结构体定义中的使用
BITMAP位图文件主要分为如下3个部分: 块名称 对应Windows结构体定义 大小(Byte) 文件信息头 BITMAPFILEHEADER 14 位图信息头 BITMAPINFOHEADER 4 ...
- C++11 引用叠加规则和模板参数类型推导规则
http://zm8.sm-img2.com/?src=http%3A%2F%2F***%2FArticle%2F38320&uid=57422b713ac761e653af7b327bfd9 ...
- 类型:.net;问题:C#lambda表达式;结果:Lambda表达式详解
Lambda表达式详解 前言 1.天真热,程序员活着不易,星期天,也要顶着火辣辣的太阳,总结这些东西. 2.夸夸lambda吧:简化了匿名委托的使用,让你让代码更加简洁,优雅.据说它是微软自c#1 ...
- Repmat:Replicate and tile an array
Repmat:Replicate and tile an array Syntax B = repmat(A,m,n) B = repmat(A,[m n]) B = repmat(A,[m n p. ...
- [Python Study Notes]物体运动检测
基于opencv的cv2模块实现 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- 关于android写入SD卡数据的学习代码
String path = "data/data/com.example.qqlogin/login.txt"; FileOutputStream fos = new FileOu ...
- 初阶html学习总结(一)(转)
一:颜色代码 如果你想使用某种颜色,取得它的颜色值即可.比如,您想改变某些文字的颜色,您可以使用下面的代码:<font color=#ffc060 size=2>改变#符号后的代码即可改变 ...