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 11环境的更多相关文章
- 使用Docker搭建Tomcat运行环境
1 准备宿主系统 准备一个 CentOS 7操作系统,具体要求如下: 必须是 64 位操作系统 建议内核在 3.8 以上 通过以下命令查看您的 CentOS 内核: # uname -r 2 安装Do ...
- 利用Docker搭建本地https环境的完整步骤
利用Docker搭建本地https环境的完整步骤 这篇文章主要给大家介绍了关于如何利用Docker搭建本地https环境的完整步骤,文中通过示例代码将实现的步骤介绍的非常详细,对大家的学习或者工作具有 ...
- Docker最全教程之使用Docker搭建Java开发环境(十七)
前言 Java是一门面向对象的优秀编程语言,市场占有率极高,但是在容器化实践过程中,发现官方支持并不友好,同时与其他编程语言的基础镜像相比(具体见各语言镜像比较),确实是非常臃肿. 本篇仅作探索,希望 ...
- 怎么使用Docker搭建PHP开发环境呢?
在Docker流行之前,要搭建开发环境通常有两种选择:一种是使用wamp.xampp.mamp等集成开发环境安装包,另外一种就是使用普通虚拟机来安装linux服务器,然后通过下载一键安装包(如:lnm ...
- mac下搭建cordova开发环境
Apache Cordova 原名叫PhoneGap.是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台.PhoneGap最初由Nitobi开发,2011年 ...
- docker 搭建 web 服务环境
docker容器虽然早就听说过,但是本人还真的没去用过,刚好看到相关的文章,就分享了下,有机会可以实践下...... 做过开发的人对开发环境的安装.配置应该都不会太陌生,不管你做什么开发,对开发环境都 ...
- 在windows环境里,用Docker搭建Redis开发环境(新书第一个章节)
大家都知道高并发分布式组件的重要性,而且如果要进大厂,这些技术不可或缺.但这些技术的学习难点在于,大多数项目里的分布式组件,都是搭建在Linux系统上,在自己的windows机器上很难搭建开发环境,如 ...
- 使用 Docker 搭建 Tomcat 运行环境
转自: http://m.oschina.net/blog/616526, 版权归原作者所有. 1 Docker与虚拟机 2 搭建过程 2.1 准备宿主系统 准备一个 CentOS 7操作系统 ...
- 搭建Cordova开发环境
Cordova是什么 Apache Cordova是一套设备API,允许移动应用的开发者使用JavaScript来访问本地设备的功能,比如摄像头.加速计.它可以与UI框架(如jQuery Mobile ...
随机推荐
- .NET6: 开发基于WPF的摩登三维工业软件 (8) - MVVM
基于WPF开发界面的一个很大优势是可以方便地基于MVVM设计模式开发应用.本文从应用的角度基于MVVM实现参数化管材的创建界面. 1 MVVM MVVM是Model-View-ViewModel的简写 ...
- 微信小程序yansongda 支付宝测试
小程序支付接入文档 1:php 框架composer 安装yansongda插件 composer require yansongda/pay:^2.10 -vvv 2:支付宝沙箱支付获取自己Appi ...
- tensorflow源码解析之common_runtime拾遗
把common_runtime中剩余的内容,按照文件名排序进行了简单的解析,时间原因写的很仓促,算是占个坑,后续有了新的理解再来补充. allocator_retry 有时候内存分配不可能一次完成,为 ...
- VuePress 博客优化之开启 Algolia 全文搜索
前言 在 <一篇带你用 VuePress + Github Pages 搭建博客>中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档. 由于 V ...
- 关于BFS
嗨,又是躺平的一天呢 下文有很多未经版权允许而私自转载,不喜勿喷 今天我来整理亿下关于 BFS 这个"高级"的东西: 首先,我不得不提亿句 关于队列 是个啥 队列(queue)是一 ...
- spring事务详解(基于注解和声明的两种实现方式)
Spring事务( Transaction ) 事务的概念 事务是一些sql语句的集合,作为一个整体执行,一起成功或者一起失败. 使用事务的时机 一个操作需要多天sql语句一起完成才能成功 程序中事务 ...
- 提升Spring Boot项目中API接口并发能力的一个注解,效果明显
异步调用几乎是处理高并发Web应用性能问题的万金油,那么什么是"异步调用"?"异步调用"对应的是"同步调用",同步调用指程序按照定义顺序依次 ...
- 领域驱动模型DDD(一)——服务拆分策略
前言 领域驱动模型设计在业界也喊了几年口号了,但是对于很多"务实"的程序员来说,纸上谈"术"远比敲代码难得太多太多.本人能力有限,在拜读相关作品时既要隐忍书中晦 ...
- 【原创】浅谈指针(十一)alloca函数
前言 好几天没写了,最近网课,事情也比较多,今天多写点东西. 目录 前言 alloca函数 1.简介 2.反汇编看alloca 3.手工调用alloca函数 4.注意事项 alloca函数 1.简介 ...
- 转-MySQL 数据库误删除后的数据恢复操作说明
在日常运维工作中,对于mysql数据库的备份是至关重要的!数据库对于网站的重要性使得我们对mysql数据的管理不容有失!然后,是人总难免会犯错误,说不定哪天大脑短路了来个误操作把数据库给删除了,怎么办 ...