docker搭建cordova|docker搭建cordova 11环境

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 到容器 docker run -i -t -v /e/Downloads:/Downloads ubuntu:latest /bin/bash
3、分别下载以下文件到 E:\Downloads
  • https://dl.google.com/android/repository/commandlinetools-linux-8092744_latest.zip?hl=zh-cn
  • https://dlcdn.apache.org//ant/binaries/apache-ant-1.10.12-bin.tar.gz
  • https://nodejs.org/dist/v12.22.9/node-v12.22.9-linux-x64.tar.gz
  • https://download.oracle.com/otn/java/jdk/8u321-b07/df5ad55fdd604472a86a45a217032c7d/jdk-8u321-linux-x64.tar.gz?AuthParam=1648517173_de227c15b0d48b69dde5576f3f185ccc
  • https://downloads.gradle-dn.com/distributions/gradle-4.10.3-all.zip
此时目录被挂载到了容器内,可以在容器内访问下载的文件。
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-8u321-linux-x64.tar.gz -C /root/devtools/

目录如下:
root ┕ devtools └ jdk1.8.0_321 └ 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_321 JRE_HOME=/root/devtools/jdk1.8.0_321/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

如果报错 sh: 1: node: Permission denied 则执行以下命令:
npm config set user 0 npm config set unsafe-perm true

8、将容器保存为 docker 镜像 退出容器 exit,执行命令:
docker commit [容器ID] cordova:1.0

9、命令行使用镜像打包apk
docker run --rm -i -t -v [APP项目根目录]:/appDir cordova:1.0 /bin/bash -c "source /etc/profile && cd /appDir && cordova build android"

这条命令首先将APP目录挂载到容器,进入容器后自动cd到APP目录下执行打包命令,打包完毕后容器会被删除。 如果重复提醒 May Cordova anonymously report usage statistics to improve the tool over time?,可以先把APP目录挂载进去运行一次打包,再提交镜像,就不会重复下载 gradle 了。
文章来源:https://www.cnblogs.com/flicat/p/16093696.html



【docker搭建cordova|docker搭建cordova 11环境】

    推荐阅读