"阅历这种东西,杀掉了幼稚,也误伤了纯真"突然有所感悟,下面就言归正传。
jenkins 的安装与配置:
1: 拉取镜像(可以去这里获取你需要的版本: hub.docker.com/_/jenkins?t… 首次进入加载插件失败,这里安装的是最新的中文版本:
$ docker pull jenkins/jenkins:lts
2: 创建本地数据卷 我这里映射本地数据卷的路径为/var/jenkins_home/,你想放别的地方可以自行修改
$ mkdir -p /var/jenkins_home/
需要修改下目录权限,因为当映射本地数据卷时,/var/jenkins_home/目录的拥有者为root用户,而容器中jenkins用户的 uid 为 1000。
3:启动jenkins容器:
$ docker run -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /usr/local/apache-maven-3.6.3:/usr/local/maven -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /etc/localtime:/etc/localtime --name jenkins docker.io/jenkins/jenkins:lts
-d (后台运行镜像)
-p 8080:8080 (将镜像的8080端口映射到服务器的8080端口(服务器端口:镜像端口))
-p 50000:50000 (基于 JNLP 的 Jenkins 代理通过 TCP 端口 50000 与 Jenkins master 进行通信,所以也要映射)
-v /var/jenkins_home:/var/jenkins_home ( /var/jenkins_home目录为jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录)
-v /var/run/docker.sock:/var/run/docker.sock (jenkins容器内也需要docker来执行任务,所以这里将docker命令也映射到容器里)
-v /usr/bin/docker:/usr/bin/docker (将docker命令映射到容器内)
-v /etc/localtime:/etc/localtime (让容器使用和服务器同样的时间设置。)
--name xxx (给容器起一个别名)
docker.io/jenkins/jenkins:lts (使用刚下载的镜像安装)
配置:
1:初始化jenkins: http:ip:port/ 看到让你输入jenkins初始登陆密码 根据提示密码在/var/jenkins_home/secrets/initialAdminPassword这个文件中,注意这个路径是 Docker 容器中的,所以我们通过如下命令获取一下: docker exec 容器id(容器名称) cat /var/jenkins_home/secrets/initialAdminPassword 因为我们映射(挂载)了本地数据卷/var/jenkins_home/,所以也可以通过如下命令输出 $ cat /var/jenkins_home/secrets/initialAdminPassword
2:安装默认插件即可 然后创建自己得账户
Jenkins配置Maven 进入“全局工具配置”,找到“Maven”,MAVEN_HOME 里填 “/usr/local/maven”,就是之前挂在的目录 maven的setting提供:
JDK配置(jenkins默认自动带dk1.8通过一下命令获取路径 JAVA_HOME
Git配置,jenkins启动时默认插件就有Git,进入容器内部查看git路径 $ whereis git
**配置gradle 选择对应的gradle版本 勾选自动安装 **
下载AndroidSdk这里提两种方案:
1: 在宿主中下载sdkmanager或者sdk,然后通过命令复制到jenkins镜像中 docker cp commandlinetools.zip 容器id:xxx/xxxx(指定容器路径)
2:进入jenkins镜像中下载 docker exec -i -t -u root <镜像name/容器id> /bin/bash 下载sdkmanager $ wget dl.google.com/android/rep… 最新版本
根据需要下载sdk ./sdkmanager “platforms;android-28” 配置AndroidSdk路径:根据官方文档提示 android sdk 路径 要配置在 "/android/sdk/cmdline-tools/latest/" 下面不然会发生莫名其妙的错误
设置ANDROID_HOME环境变量( Manage Jenkins > Configure System 下配置全局变量)
设置对应git项目地址,Credentials设置为github账号密码
设置自定义构建参数:
改变构建脚本:
修改构建历史命名:需要两个插件
user build vars 此插件用于设置用户构建变量:jenkins用户名和ID等
Build Name and Description Setter 此插件用于修改构建的显示名称(修改之前为默认的#1,#2,#3…)