基于docker运行的jenkins并配置maven

比较粗暴的方式就是在修改容器,比如把maven包复制到容器中,再将容器打包成镜像。(不推荐)


下面优雅的做法(官方推荐的做法),即在官方镜像的基础之上通过编写Dockerfile生成新的镜像。

操作步骤:

1、官网下载maven安装包 apache-maven-3.6.3-bin.tar.gz

2、编辑自己的setting.xml

          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  /var/jenkins_home/repository

  

  

  

  

  

  

  

   

      alimaven

      aliyun maven

      http://maven.aliyun.com/nexus/content/groups/public/

      central

    

  

  

  

Ps:这里的仓库地址配置和jenkins挂载地址一致,这样可以少配置一个挂载目录,也可以改成其他位置,在启动容器时映射这个目录即可

3、编写Dockerfile

FROM jenkins/jenkins:lts

# put nginx-1.13.2.tar.gz 将宿主机上的nginx-1.13.2.tar.gz复制到容器中的/usr/local/src (对于压缩包会复制过程中自动解压)

ADD apache-maven-3.6.3-bin.tar.gz /opt

COPY settings.xml /opt/apache-maven-3.6.3/conf

ENV PATH /opt/apache-maven-3.6.3/bin:$PATH

4、确保 apache-maven-3.6.3-bin.tar.gz 、setting.xml 、Dockerfile三个文件在同一个目录下后执行

[root@izwz98um4r4f29t97dmxufz opt]# docker build -t jenkins-maven/jenkins:lts .

5、运行容器

docker run --name jenkins -d -p 8080:8080 -p 50000:50000 -v /docker_data/jenkins/:/var/jenkins_home -u root jenkins-maven/jenkins:lts

Ps:/docker_data/jenkins为宿主机目录

/var/jenkins_home:容器目录,由于上文将maven仓库地址配置在当前目录下,因此不用额外挂载仓库目录

-u root参数是为了让容器以宿主机root身份进行操作。也可以不使用root方式,修改/docker_data/jenkins文件夹权限也可以

6、进入jenkins页面配置maven

系统管理》全局工具配置》Maven 配置

配置/opt/apache-maven-3.6.3为maven根目录

/opt/apache-maven-3.6.3/conf/setting.xml为maven全局配置文件


附加:

如果想实时替换jenkins-maven/jenkins:lts 镜像中的maven配置文件,执行

docker run --name jenkins -d -p 8080:8080 -p 50000:50000 -v /docker_data/jenkins/:/var/jenkins_home -v 宿主机目录/setting.xml:/opt/apache-maven-3.6.3/conf/setting.xml -v 宿主机目录/repository:setting文件中定义的路径 -u root jenkins-maven/jenkins:lts


基于以上做法,当使用docker history jenkins-maven/jenkins:lts 时可以很直观的看到修改内容。

重点:

以上的操作可以在任意的官方镜像上自定义自己需要的内容的镜像。

你可能感兴趣的:(基于docker运行的jenkins并配置maven)