1. 程式人生 > 其它 >docker搭建cordova 11環境

docker搭建cordova 11環境

cordova@11 依賴環境:

1、下載docker映象 ubuntu

docker pull ubuntu

2、建立容器,掛載 E:\Downloads 到容器

docker run -i -t -v /e/Downloads:/Downloads 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-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 [email protected]

如果報錯 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