Docker + Jenkins + Android 环境搭建

本文通过 群晖 使用docker搭建Jenkins + Android构建环境

硬件设备:黑群晖6.2.3
主要是通过dockerfile创建的Jenkins容器以及使用,这样可以定制化

dockerfile

创建一个文件“dockerfile”,在文件中写入如下代码

# 基于已有的镜像 jenkins/jenkins 来构建新镜像
FROM jenkins/jenkins

MAINTAINER zhushuai

USER root

RUN apt update -y && apt upgrade -y && apt install wget unzip -y

# 设置变量
ENV USR_LOCAL="/usr/local" \
     ANDROID_HOME="${USR_LOCAL}/AndroidSdk" \
     SDK_TOOL_URL="http://192.168.31.6:8088/s/n5cZ5Bjs8cpDENJ/download/cmdline-tools.zip"
#https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip

# 创建android sdk目录,并下载 sdkmanager
RUN mkdir -p ${ANDROID_HOME} \
     && cd $ANDROID_HOME \
     && curl -o sdk.zip $SDK_TOOL_URL \
     && unzip sdk.zip \
     && rm sdk.zip

#RUN mkdir ${ANDROID_HOME}/cmdline-tools/latest 
#COPY ${ANDROID_HOME}/cmdline-tools/bin/ ${ANDROID_HOME}/cmdline-tools/latest 
#COPY ${ANDROID_HOME}/cmdline-tools/lib/ ${ANDROID_HOME}/cmdline-tools/latest 
#COPY ${ANDROID_HOME}/cmdline-tools/NOTICE.txt ${ANDROID_HOME}/cmdline-tools/latest 
#COPY ${ANDROID_HOME}/cmdline-tools/source.properties ${ANDROID_HOME}/cmdline-tools/latest 

RUN echo "export PATH=/AndroidSdk/cmdline-tools/latest/bin" >> ~/.bashrc


# 安装android sdk其他package, 输入y是因为此处会有一个licence,需要用户同意后才会安装
RUN echo y | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager "platform-tools" "platforms;android-28" "build-tools;28.0.3" "ndk-bundle" "cmake;3.6.4111459"


# 设置环境变量: 把 android sdk 路径加入到 PATH 中
ENV PATH ${ANDROID_HOME}/cmdline-tools/latest:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${PATH}

Jenkins构建android主要需要:

  1. JDK(Jenkins 本身就是运行在Java上,所以不需要安装。但是要注意,最新的Jenkins已经大于JDK8)
  2. Gradle (最新的Jenkins已经大于JDK8,如果用老版本的Gradle会有问题,推荐用最新的)
  3. Android SDK (可以通过sdkmanager去下载)

剩下的就是环境变量的设置,这些都已经在dockerfile中写好了直接运行即可

构建镜像

使用如下命令创建镜像

docker build -t jenkins_android -f  ./dockerfile . 

注意 此时你的终端工作路径 应该是这个dockerfile的文件夹路径下,第一个“jenkins_android”是生成的镜像名字,第二个“dockerfile”是第一步文件保存的名称


命令执行完成后的构建结果

查看生成的文件名称

docker images

因为下载了gradle等 android 需要的文件 所以镜像比较大,下载比较慢,网速慢的需要耐心等待一下


image.png

构建容器

docker run -p 8080:8080 -p 5000:5000 --name jenkins  -u root  -v /Users/docker/jenkins:/var/jenkins_home  -d jenkins_android

-p 端口设置
-d 后台运行,不用终端一只等着
-v 容器文件映射到本地,“/Users/docker/jenkins”是需要修改成自己的目录,这里包含着jenkins的数据,以后可以迁移的时候直接打包带走
--name 指定运行后的容器名称 ,可以自定义
jenkins_android 是上面dockerfile文件生成镜像的名称,注意跟上面执行的时候一致即可

然后使用你的IP地址+端口号(如:127.0.0.1:8080)在浏览器中就可以访问jenkis了


Jenkins

注意事项 ⚠️

细心的同学就会发现dockerfile中的问题,下面👇的这个地址是本地的地址,根本就下载不到的😂

http://192.168.31.6:8088/s/n5cZ5Bjs8cpDENJ/download/cmdline-tools.zip

这个就是“https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip”上下载的文件,并不是文件无法下载,而是要使用这个文件中的sdkmanager下载sdk还有ndk,直接解压使用有问题,具体是啥我忘记了,解决方法就是从“https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip”下载下来文件,解压后将所有文件增加一级latest目录,然后从新压缩,自己放到一个文件文件服务器上即可,我这里就暂时不提供文件服务器了,我自己压缩好的文件可以在评论区上一个某网盘的链接

需要增加一级目录文件

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容