一、挂载相关数据卷
由于使用Docker容器运行Jenkins,而Jenkins在应用maven操作以及java操作时都是在容器主机内执行,所以在创建Jenkins容器时可通过挂载宿主机已有的maven和JDK到容器内来,方便Jenkins去调用。
### docker run -d -p 5050:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home -v /usr/local/apache-maven-3.8.4:/var/maven -v /Users/wei/.m2:/var/.m2 --name=jenkins jenkins/jenkins:lts-jdk11
docker run -d \
-p 5050:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /usr/local/apache-maven-3.8.4:/var/maven \
-v /Users/wei/.m2:/var/.m2
--name jenkins \
jenkins/jenkins:lts-jdk11
如果已运行了Jenkins容器,但未挂载maven(或其他需要的)目录
1.停止当前运行容器:docker stop jenkins
2.提交当前jenkins容器成为一个新镜像:docker commit jenkins jenkins:1.0
3.删除旧容器:docker rm jenkins
4.以新提交的jenkins:1.0镜像运行一个新容器,在这一步挂载maven目录:
### docker run -d -p 5050:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home -v /usr/local/apache-maven-3.8.4:/var/maven -v /Users/wei/.m2:/var/.m2 --name=jenkins jenkins/jenkins:lts-jdk11
docker run -d \
-p 5050:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /usr/local/apache-maven-3.8.4:/var/maven \
-v /Users/wei/.m2:/var/.m2
--name jenkins \
jenkins/jenkins:lts-jdk11
Mac OS上的挂载设置
Mac OS上使用Docker Desktop需要配置共享文件:
通过选项 Settings - Resource - FILE SHARING,之后手动添加目录
*配置后新运行的容器才生效
二、配置Maven
配置maven以及settings.xml
选项位置:Dashboard - 系统管理 - 全局工具配置
1.配置settings.xml
设置默认和全局 settings,都选择同路径即可。
2.配置maven
Name为自定义名称,MAVEN_HOME则为maven主路径。
配置maven本地仓库
选项位置:Dashboard - Manage Jenkins - Configure System
Jenkins默认将~/.m2/repository作为maven本地仓库;
如果在Maven的settings.xml指定了,那么将使用其中的值作为本地仓库路径。
*~代表用户目录,在Jenkins中即主目录/var/jenkins_home
三、配置JDK
使用Jenkins自带的JDK
查询Java安装主目录的环境变量$JAVA_HOME:echo $JAVA_HOME,
这里的$JAVA_HOME是/opt/java/openjdk。
使用挂载数据卷的JDK
注意如果使用Mac OS上的JDK会因架构不同而不可用,所以使用Jenkins容器中的JDK;
其他情况则可以正常使用挂载的JDK。