Docker + jenkins + Android自动化打包 SdkManager 遇到的坑

下载docker,官网下载安装

安装好后,下载 docker 提供的 Jenkins的镜像

 

配置一下,不然好多异常提示,尤其是 registry-mirrors  和  expermental

{
  "registry-mirrors": [
    "https://pee6w651.mirror.aliyuncs.com",
    "https://hub.daocloud.io/"
  ],
  "insecure-registries": [],
  "debug": true,
  "experimental": true
}

还有就是有条件的话,内存和cpu给多点,不然打包好慢

只有在linux模式下,才有这个选项,window模式好像没看到

 

 

https://hub.docker.com/r/jenkins/jenkins

坑1:

我一开始默认使用的是 jenkins/jenkins:latest 版的镜像,

docker pull jenkins/jenkins:latest

下载好镜像后,运行安装插件是,总提示  No such plugin: cloudbees-folder

这时候latest版是2.238版本 ,而稳定版是 2.222.4版本

我一开始以为是我的安装姿势不对,最后拍坑是因为镜像的问题,我下载2.222.4版本的镜像就没有任何问题

docker pull jenkins/jenkins:2.222.4

下载好镜像后,可以通过一下命令查看

docker images    查看镜像

docker  docker rmi  镜像名称    删除镜像

 


开始运行容器 :

docker run -d -p 8081:8080 -p 50000:50000 -v /home/jenkins:/var/jenkins_home --name jenkins --privileged=true  -u root jenkins/jenkins:2.222.4

切记,run的时候,指定镜像是你下载的镜像   jenkins/jenkins:2.222.4

这里的 -v /home/jenkins:/var/jenkins_home 是我的挂载点,持久化后面配置用的

windows的话,记得要开一下共享设置     例如  -v d:\jenkins\var:/var

然后就jenkins就开始跑了

这时候 浏览器打开,就应该可以看到Jenkins在初始化了

http://localhost:8081/

等到了密码输入界面,

先登录到docker里

docker exec -it -u root jenkins /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword

就能看到密码了

然后后面都是在网页上对jenkins进行配置了

此处就不多介绍了


开始安装andorid sdk  通过 sdkmanager

坑2

现在都不步入安卓10的时代了,很多文章还在用老的方式搞sdk

现在用一下sdkmanager 来,这里面遇到不少坑,找了半天才发现有个黑操作,竟然可以

到 https://developer.android.com/studio 下载 

Command line tools only 版本

直接复制下载地址

通过docker终端,操作

题外话:

如果按上面的做,不会遇到权限不足的情况,如果权限不足,记得登陆时加这个语句 

-u root

docker exec -it -u root jenkins /bin/bash

然后在根目录创建文件夹 /android/sdk

mkdir /andorid/sdk
cd /andorid/sdk
下载 命令行的sdk
wget https://dl.google.com/android/repository/commandlinetools-linux-6200805_latest.zip

这时候网上很多文章都是这么操作的

unzip ############.zip    //############## 是你下载的压缩包的名字
cd /tools/bin/            //进入解压后的tools的bin目录

如果你运行  

 sh sdkmanager list  

没有报错,恭喜你,你很顺利

 

但,如果你报错了,类似这样的

Warning: Could not create settings
java.lang.IllegalArgumentException
    at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.(SdkManagerCliSettings.
    at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.
    at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.

你试试我的这个方法,很黑的方法 直接改目录名

次方法我也是搜了好半天找到的一个,哈哈,确实很邪 感谢这位大哥

就是现在tools的文件夹改名未latest,并且把在外面再套一个文件夹,名字叫cmdline-tools

目录结构如下

/andorid/sdk/cmdline-tools/lastest

改成这样

mkdir /android/sdk/cmdline-tools/
mv /android/sdk/tools /android/sdk/cmdline-tools/
mv /android/sdk/cmdline-tools/tools /android/sdk/cmdline-tools/latest

先创建在移动,基本上这波操作下来就好了

然后你再试试

 sh sdkmanager list  

有没有神奇的效果,如果有的话,基本上就万事大吉了

如果没有,出门左转,找其他办法吧

哈哈

然后安装sdk相关工具

https://developer.android.com/studio/command-line/sdkmanager

根据自己项目需求下载对应版本

sh sdkmanager "platform-tools" "platforms;android-28"

剩下就万事ok了

 


如果需要docker里该该文件

装个vim,万事轻松很多

apt-get update
apt-get install vim

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值