Jenkins容器集成Maven,Git打包编译运行项目

1.自己的阿里云测试环境(一台centos7服务器)  镜像版本 jenkins/jenkins:latest    git用的是gitee(免费的)   maven与jdk都是在宿主机中安装的

    1.1 docker pull  jenkins/jenkins:latest  

      成功后通过:docker images 查看

   

2.  根据镜像生成容器并运行-这个说明一下:由于是接触docker不长时间所以之前对容器目录挂载的理解不深导致了很多问题,这里如果提前都考虑到之后基本没有太大问题

    docker run -d -p 8081:8080 -p 50001:50000 -p 8090:80  -u root --privileged=true  -v /data/jenkins_home:/var/jenkins_home  -v /apps:/apps -v  /opt/apache-maven-3.6.3:/usr/local/maven    -v        /usr/java/jdk/jdk1.8/bin:/usr/local/java/jdk1.8/bin   -v /usr/java/jdk/jdk1.8:/usr/local/java/jdk1.8  -v /etc/localtime:/etc/localtime --name jenkins2 jenkins/jenkins:latest   

解释下:  

 -d 后台运行

-p 宿主机端口:容器端口

    8081:jenkins外部访问端口,如:http://xxxxx:8081/

 50001:没用到这个  具体作用参考 https://blog.csdn.net/ichen820/article/details/118210976

 8090 :java应用端口(因我的应用未实现容器化是以jar包的形式运行在jenkins容器中所以要在jenkins容器创建时指定端口,否则运行成功也无法访问)!!!!!!!

 -u  root --privileged=true:容器用户设置未root默认为jenkins  ,jenkins用户权限太低很多目录无法访问,还需要单独赋权所以直接指定root

    -v 宿主机目录:容器目录  作用通过两者目录内容一致,不必进入容器中访问这里的坑最多,应为项目中日志用的是logback-spring定义了路径是宿主中的/apps/logs 所以需要映射!!!!!  包括宿主机jdk路径  maven路径 用的shell文件路径都需要映射!!!!!!!! 

 -name   容器名称   镜像

 3.第2步没问题后生成容器如下图: 

     3.1  命令:docker  ps -a

 

    

 

     3.2  使用  docker exec -it    {containerId}    /bin/bash  命令进入到容器中查看当前容器用户及挂载目录

    

 

    3.3  这里可以看到是root用户  这其中就可以看到之前挂载的目录

   

 

    3.4  因为jenkins启动中用到了shell脚本所以在进入容器后安装ps命令(这里有点坑,若容器删除后重新run则之前安装的ps也没有了)

     apt-get update && apt-get install procps  

    3.5  安装完成后在容器中输入 ps -ef   即可验证

    3.6  退出容器 ctrl + p+ q 或 输入exit +enter

    3.7聊聊我在这一步之前踩得坑,首先run命令没有挂载那么多的目录所以我手动更改 vim /var/lib/docker/containers/container-ID/config.v2.json 的这个配置文件文件,其中包含挂载目录及用户都可以在其中进行修改.启动之前必须先执行:systemctl stop docker.service(关键,修改之前必须停止docker服务)   然后更改config.v2.json    最后 systemctl start docker.service  启动.     在安装ps命令时因为当时用户没有改成root,用jenkins下载权限还不够于是采用命令   sudo docker exec -it -u root    容器id  /bin/bash 临时root权限进入的容器,下载的ps命令     这样的操作最坑人的,若这个容器被删除了,而run命令中又没有体现各种挂载目录,新来的人启动后会各种报错,所以一定不要这么干,直接在run命令中写完整,或是采用dockerFile形式(以后补充)

4.jenkins页面设置(jenkisn版本不同看到的页面内容会不同,还有一些配置选项也不一样,但大体上差不多)

   4.1   初始页面需要密码就按照提示的去linux中复制粘贴即可,下一步需选择必要的插件,就按照推荐的都下载了,后期缺少的单独下载即可

   4.2  既然是集成git与maven那么这两个一定是先配置的,配置好后运行jar包通过shell形式或是页面配置的方式运行都可以.  集成git,maven如下图

  jenkins全局配置(JDK+MAVEN):   这里的路径如果填入后爆红提示路径找到那就是容器的路径没有映射宿主机中的路径,可以

    

 

                                    

 

    4.3系统配置(Gitee)

    

 

 

     4.4构建项目

    

 

    4.5 shell 脚本

    

 

 

  参考链接

     https://blog.csdn.net/weixin_42904386/article/details/123591913

     https://blog.csdn.net/yinshuilan/article/details/120040095

     https://blog.51cto.com/u_13260163/3067270

 

 

 

 

 

  

  

 

posted @ 2022-06-21 14:31  悄悄地超越  阅读(392)  评论(0编辑  收藏  举报