这里使用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
第二点中目的有三个:
- 查看项目是否缺少依赖,使用android update sdk 命令来增加安卓sdk依赖包。
- 自动下载项目中所有的依赖。
- 安装gradlew。
需要备份的点有两个
- /root/.gradle 备份这个目录可以在以后自动化构建的时候不需要重复安装gradlew。
- $PROJDIR/.gradle项目依赖的备份,备份了。($PROJDIR 为您的项目根目录位置)
都备份之后下次编译就不需要网络了(容器就不需要梯子了,这点对提升速度很重要)。
根据项目构建 Image
因为每个项目的依赖不尽相同所以需要针对项目定制化。大概运行目标如下:
- 创建容器。
- 找个方法同步代码git,FTP,NFS等等方法。










