基于docker搭建Android cordova开发环境

cordova@11 依赖环境:

  • Java_jdk@1.8.0
  • Nodejs@12.22.9
  • android-sdk
    • Build-tools 28
    • API 28
  • apache-ant@1.10.12
  • gradle@4.10.3

1、下载docker镜像 ubuntu

docker pull ubuntu

2、创建容器

# 挂载 `E:\Downloads` 下载目录到容器
# 挂载 `D:\appProject` APP项目根目录到容器
docker run -i -t -v /e/Downloads:/downloads -v /d/appProject:/appProject ubuntu:latest /bin/bash

3、分别下载以下文件到 E:\Downloads

此时目录被挂载到了容器内,可以在容器内访问下载的文件。

4、将以上文件解压到 /root/devtools/

# 创建文件夹
mkdir /root/devtools/
# 解压文件
unzip /downloads/commandlinetools-linux-8092744_latest.zip -d /root/devtools/
unzip /downloads/gradle-4.10.3-all.zip -d /root/devtools/
tar -xzvf /downloads/apache-ant-1.10.12-bin.tar.gz -C /root/devtools/
tar -xzvf /downloads/node-v12.22.9-linux-x64.tar.gz -C /root/devtools/
tar -xzvf /downloads/jdk-8u311-linux-x64.tar.gz -C /root/devtools/

目录如下:

root
  ┕ devtools
    └ jdk1.8.0_311
    └ node-v12.22.9-linux-x64
    └ apache-ant-1.10.12
    └ gradle-4.10.3
    └ Android
      └ sdk
        └ cmdline-tools
          └ latest
            ├ NOTICE.txt
            ├ bin
            ├ lib
            └ source.properties

注意:安卓目录必须按照以上示例的结构,否则安装api时会报错

5、配置环境变量

编辑profile文件 vim /etc/profile ,添加以下内容:

set java environment
JAVA_HOME=/root/devtools/jdk1.8.0_311
JRE_HOME=/root/devtools/jdk1.8.0_311/jre
NODE_PATH=/root/devtools/node-v12.22.9-linux-x64
ANT_HOME=/root/devtools/apache-ant-1.10.12
ANDROID_HOME=/root/devtools/Android/sdk
GRADLE_PATH=/root/devtools/gradle-4.10.3
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$NODE_PATH/bin:$ANT_HOME/bin:$ANDROID_HOME/cmdline-tools/latest/bin:$GRADLE_PATH/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH ANDROID_HOME ANT_HOME

运行 source /etc/profile 让配置生效
如果vim输入麻烦,可以将 /etc/profile 文件 cp 到 /downloads 目录下,在外层改完后再 cp 回去
如果容器每次都需要运行 source /etc/profile 才能让变量生效,则在 ~/.bashrc 文件最后一行添加 source /etc/profile

6、重启容器,安装安卓 api 和 build-tools

# 添加安卓 api28 和 build-tool28
sdkmanager "build-tools;28.0.3" "platforms;android-28" "platform-tools"

7、安装cordova

npm install -g cordova@11.0.0

8、安装项目依赖

cd 进入APP根目录安装npm包和cordova环境

cd /appProject
# 安装npm包
npm install
# 构建html文件到www目录,如果没有www目录cordova无法识别项目
npm run build
# 添加安卓环境
cordova platform add android@8.1.0
# 添加插件
cordova plugin add cordova-plugin-android-permissions@1.1.2
cordova plugin add cordova-plugin-splashscreen@6.0.0
cordova plugin add cordova-plugin-whitelist@1.3.5
cordova plugin add cordova-hot-code-push-plugin@1.5.3
# 运行打包命令
cordova build android

如果报错 sh: 1: node: Permission denied
则执行以下命令:

npm config set user 0
npm config set unsafe-perm true
# 删除模块
rm -rf node_modules
# 清除npm cache
npm cache clean -f
# 重新安装
npm install

9、将容器保存为 docker 镜像

退出容器 exit,执行命令:

docker commit [容器ID] cordova:1.0

10、命令行使用镜像打包apk

docker run --rm -i -t -v [APP项目根目录]:/appProject cordova:1.0 /bin/bash -c "source /etc/profile && cd /appProject && cordova build android"

这条命令首先将APP目录挂载到容器,进入容器后自动cd到APP目录下执行打包命令,打包完毕后容器会被删除。

上面的镜像已经上传到 docker hub,下载命令:docker pull flicat/cordova_11_android:v1

文章来源:https://www.cnblogs.com/flicat/p/16093696.html

posted on 2022-04-02 19:40  孤云独去闲  阅读(545)  评论(0编辑  收藏  举报

导航