版权声明:本文为博主原创文章,可以随意转载,但请附原地址或原作者名。谢谢! https://blog.csdn.net/farley119/article/details/82584974
引言
在上节中我们熟悉了docker的安装及基本使用,这节开始做Android的自动化部署
制作基础镜像
先创建一个basedocker文件夹,里面放我们这次制作镜像需要用到的东西,后面会把它制作成我们的基础镜像。
通过上面一节我们已经知道,要制作镜像肯定少不了dockerfile这个关键文件,其次我们做Android开发也知道,打包肯定需要用到Android SDK中的tools工具包,所以下面我们把这两项先放进来
如图所示就是我创建好的文档dockerfile的编辑,这一步也是最关键的,下面我直接把代码贴上来我们一步一步分析:
FROM ubuntu:16.04 #这个是导入我们需要的打包环境
MAINTAINER feign "fuyang@thinker.vc" #这个类似于作者
#下面我们给我们的打包环境安装了一些列后面会用到的包
RUN apt-get update -qq && \
apt-get install -y --no-install-recommends openjdk-8-jdk \
libc6-i386 \
lib32stdc++6 \
lib32gcc1 \
lib32ncurses5 \
lib32z1 \
unzip curl && \
apt-get clean
ENV USR_LOCAL /usr/local
RUN mkdir -p ${USR_LOCAL}/android-sdk-linux /opt/sdk
ADD tools ${USR_LOCAL}/android-sdk-linux/tools
#配置容器内一些列变量
ENV ANDROID_HOME ${USR_LOCAL}/android-sdk-linux
ENV ANDROID_SDK ${USR_LOCAL}/android-sdk-linux
ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
RUN echo "export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools" >> /etc/profile
#安装Android27的tools这个我们已经下载好了并且在上面已经ADD进来了
ENV ANDROID_SDK_COMPONENTS tools,platform-tools,extra-android-m2repository,extra-google-m2repository,android-27,build-tools-27.0.2,build-tools-27.0.3
RUN echo y | android update sdk --no-ui --all --filter "${ANDROID_SDK_COMPONENTS}"
RUN yes | /usr/local/android-sdk-linux/tools/bin/sdkmanager --licenses
WORKDIR /opt/sdk #开始制作我们的镜像 这里有一点需要注意,“yes |”这个命令做好加上 我的Mac不加会报 licenses无权限,这个Google官网已经给出了解决方案
CMD ["./gradlew","assemblerelease"] # 我们的打包命令
- 开始制作,上面我们已经把我们的dockerfile准备完善了,下面就可以开始制作我们的基础镜像了。打开终端
docker build -t android:27 /Users/Farley/MyAndroidProject/basedocker
大概需要运行三五分钟,运行结束后在终端输入:
docker images
就会看到我们制作的镜像了。
使用镜像打包
既然我们的基础镜像制作好了,那么开始打包吧。
docker run --rm -v path/xx/xx:/opt/sdk android:27 ./gradlew assembleRelease
运行此命令,上面的path是我们的项目地址。这次大概需要运行一会儿就好。最后会在app/build/outputs/release 下面生成一个不签名的apk。
这样我们的打包目的就达到了。那如果我们需要多渠道、多环境、签名、上传等操作怎么办?且听下回分解。
更多内容请关注公众号“计算机自学平台”