在docker搭建android編譯打包環境實踐
環境準備
-
centos7伺服器
image.png
-
docker18.09.0
image.png
安裝包準備
-
JDK8
下載地址: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
image.png
-
android tools
下載地址: https://developer.android.google.cn/studio/
image.png
編寫Dockerfile
-
建立Dockerfile檔案
新建一個資料夾,將上面下載的jdk和android tools放進去,再新建一個Dockerfile檔案。
image.png
-
Dockerfile內容
# 基於centos基礎映象 FROM centos:latest # 安裝常用命令 RUN yum install -y curl \ && yum install -y wget \ && yum install -y zip \ && yum install -y unzip \ && yum install -y tar \ && yum install -y lsof \ && yum install -y git #設定工作目錄 WORKDIR /home # 拷貝JDK安裝包到容器中 COPY jdk-8u191-linux-x64.rpm /home # 安裝JDK RUN yum install -y jdk-8u191-linux-x64.rpm \ && java -version # 設定JAVA_HOME環境變數 ENV JAVA_HOME /usr/java/jdk1.8.0_191-amd64 # 拷貝android tools到容器中 COPY sdk-tools-linux-4333796.zip /home # 解壓android tools RUN mkdir -p /opt/app/android-sdk RUN unzip -d /opt/app/android-sdk sdk-tools-linux-4333796.zip # 安裝需要的platforms和build-tools版本 RUN yes | /opt/app/android-sdk/tools/bin/sdkmanager "platforms;android-28" RUN yes | /opt/app/android-sdk/tools/bin/sdkmanager "platforms;android-27" RUN yes | /opt/app/android-sdk/tools/bin/sdkmanager "build-tools;28.0.3" RUN yes | /opt/app/android-sdk/tools/bin/sdkmanager "build-tools;27.0.3"
使用 Dockerfile 建立映象
- 下載centos映象
docker pull centos
- 進入Dockfile檔案所在資料夾後輸入如下命令
docker build -t android-package:0.0.1 .
- 待build完成輸入
docker images
命令就可以看到build成功的映象了

image.png
以互動模式啟動容器,並在容器內執行/bin/bash命令
輸入如下命令
docker run -it android-package:0.0.1 /bin/bash
之後就進入了容器shell命令介面

image.png
確認容器環境
- 確認java環境
輸入命令java -version
image.png
- 確認JAVA_HOME環境變數
輸入命令echo $JAVA_HOME
image.png
- 確認platforms是否下載成功
輸入命令ll /opt/app/android-sdk/platforms/
image.png
- 確認build-tools是否下載成功
輸入命令ll /opt/app/android-sdk/build-tools/
image.png
驗證打包
- 下載一個Android專案程式碼
git clone https://github.com/hellsam/EmptyProject.git
- 建立local.properties檔案並指定android sdk路徑
進入EmptyProject資料夾,輸入如下命令
echo "sdk.dir=/opt/app/android-sdk" > local.properties
- 開始編譯打包
輸入如下命令
./gradlew assembleRelease
等待命令執行完成(第一次會比較慢),最終apk地址 app/build/outputs/apk/release/app-release.apk
至此我們完成了在docker上搭建了android打包編譯環境,併成功編譯出了apk檔案。
有任何疑問,歡迎留言交流