基于docker运行的jenkins并配置maven

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


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

操作步骤:

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

2、编辑自己的setting.xml

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"

          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">

  <localRepository>/var/jenkins_home/repository</localRepository>

  <pluginGroups>

  </pluginGroups>

  <proxies>

  </proxies>

  <servers>

  </servers>

  <mirrors>

   <mirror>

      <id>alimaven</id>

      <name>aliyun maven</name>

      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

      <mirrorOf>central</mirrorOf>

    </mirror>

  </mirrors>

  <profiles>

  </profiles>

</settings>

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 时可以很直观的看到修改内容。

重点:

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容