通过docker file定制化jenkins容器,基于jenkins:lts-jdk11长期版本。
jenkins构建Android,需要JDK、android sdk、gradle。jenkins:lts中已经包含了jdk11,其余都已经安装并注入了环境变量
需要注意的几个点:
jenkins-plugin-cli
需要连接jenkins plugin.io,可能会下载plugin失败,jenkins启动之后需要检查一下对应的插件是否安装。- jenkins已安装plugin: rebuild:1.34 gradle-daemon:0.1.0 gradle:2.3.1 build-name-setter:2.2.0 git-parameter:0.9.18 envinject:2.901.v0038b_6471582 thinBackup:1.15 pipeline-utility-steps:2.15.1 versionnumber:1.10 build-user-vars-plugin:1.9
- androidsdk 已经安装了sdkmanager cli,并同意了license,jenkins 会自动下载需要的sdk版本。
- flutter:已经配置了国内镜像
环境变量
- JAVA_HOME= /opt/java/openjdk
- ANDROID_HOME=/var/jenkins_home/android/sdk
- FLUTTER_HOME=/var/jenkins_home/flutter
- GRADLE_USER_HOME=/var/jenkins_home/.gradle
1.通过dockerfile构建镜像
1.创建Dockerfile文件
1 | mkdir deploy_android |
2.Dockerfile内容,依据需求改动
1 | FROM jenkins/jenkins:lts-jdk11 |
2.配置docker-compose.yml
1 | version: "3.4" |
这里使用了一个docker volumes “jenkins-data”.
可以提前创建好
1 | docker volume create --name=jenkins-data |
同时还映射了一个host的jenkins_backup目录,thinBackup插件指定的备份数据存放到/var/jenkins_backup
目录。方便备份数据拷贝存放,但是要注意目录权限问题
1 | sudo chown -R 1000:1000 jenkins_backup |
3.启动容器
1 | docker compose up -d |