使用Docker来加速构建Android应用的基本部署思路解析

2019-12-10 19:22:12于海丽

这里使用Cookie来确定同意协议。

安装SDK

RUN cd /opt && 
  wget -q ${ANDROID_SDK_URL} && 
  tar -xzf ${ANDROID_SDK_FILENAME} && 
  rm ${ANDROID_SDK_FILENAME} &&
  echo y | android update sdk --no-ui --all --filter tools,platform-tools,extra-android-m2repository,android-21
RUN echo y | android update sdk --no-ui --all --filter android-22,build-tools-21.1.2,build-tools-22.0.1

因为最好每一个layer控制在1G以内所以这里切割用了两个run。
注意SDK用您项目中需要的最高的版本安装到image里面然后向下安装,不然会出现tool这个文件夹无法运行工具的情况。
注意上面的SDK plateform等都是根据我们的项目来的,详细的摸索一下项目代码就知道依赖什么了。
准备项目

使用git clone 同步项目目录。
进行第一次手动构建编译。 命令为:gradlew assembleDebug
第二点中目的有三个:

  1. 查看项目是否缺少依赖,使用android update sdk 命令来增加安卓sdk依赖包。
  2. 自动下载项目中所有的依赖。
  3. 安装gradlew。

需要备份的点有两个

  1. /root/.gradle 备份这个目录可以在以后自动化构建的时候不需要重复安装gradlew。
  2. $PROJDIR/.gradle项目依赖的备份,备份了。($PROJDIR 为您的项目根目录位置)

都备份之后下次编译就不需要网络了(容器就不需要梯子了,这点对提升速度很重要)。

根据项目构建 Image

因为每个项目的依赖不尽相同所以需要针对项目定制化。大概运行目标如下: