记录一下我使用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文件,建好之后,就更改它的权限,然后提交,权限问题就解决了。

最新文章

  1. blade and soul Group Combos
  2. Work around by " Due to heavy load, the latest workflow operation has been queued. " 分类: Sharepoint 2015-07-08 00:19 3人阅读 评论(0) 收藏
  3. dsquery、netdom工具示例
  4. java环境搭建系列:JDK环境变量详细配置
  5. JQuery 如何选择带有多个class的元素
  6. Activity生命周期图
  7. js取单选按钮,复选按钮的值
  8. APUE习题8.7
  9. RunTime 应用实例–关于埋点的思考
  10. POJ 2579 Fiber Network(状态压缩+Floyd)
  11. C++继承、多态、虚函数
  12. Netty4 学习笔记之二:客户端与服务端心跳 demo
  13. Windows server2008R2 企业内部搭建虚拟专用网络服务
  14. 强网杯2018 Web签到
  15. Jquery :animate反复执行的动画可以利用函数的回调
  16. C++ 螺旋矩阵算法
  17. 如何去除 gvim 的 acp和 "option omnifunc is not set" 的问题
  18. html中一些常用标签及属性
  19. readAsDataURL
  20. android 自定义View 对话框

热门文章

  1. What makes an inferred latch? how To avoid creating inferred latches? when do you know you need latches?
  2. unix下网络编程之I/O复用(四)
  3. Unix文件指令-Mac终端命令应用
  4. Spring Boot Starter 速查
  5. Markdown简要规则
  6. 0016_练习题d2
  7. 剑指offer 39_二叉树的深度
  8. webService(简单小demo)
  9. GSON 报错HibernateProxy. Forgot to register a type adapter? 的解决办法
  10. activeMQ功能Demo