标签:端口冲突 roo 流行 基础 gid 服务器端 get gradle 不同的应用
前文中已经介绍了什么是cordova 为什么要用cordova,基础的环境搭建以及如何编译打包生成APK安装包,接下来我们介绍如何使用Jenkins 自动化编译打包生成APK安装包!
在搭建jerkins之前首先需要一台服务器环境,一个虚拟机或者阿里云租一台,这里我以阿里云服务器为例子:
准备一台阿里云服务器,准备一个域名指向该服务器,本例暂用 jenkins.zscode.com 不知道如何操作的小伙伴请自行百度,这里不做过多介绍!
Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。
docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮。docker就是集装箱。
不清楚docker如何安装的小伙伴请步我的另一篇文章 docker安装篇
对于做web开发的小伙伴对nginx一定不会陌生,但是我还是准备了一篇基础的安装部署文章 Nginx的安装以及反向代理和负载均衡的配置 文章介绍了不使用docker的情况下如果使用nginx,接下来我们用docker重写下!
#将该脚本保存为start.sh
docker run -d --rm -p 80:80 -p 443:443 -v "$PWD/conf.d":/etc/nginx/conf.d/ -v "$PWD/html":/usr/share/nginx/html/ --name nginx nginx:alpine
执行该脚本后nginx的服务已经起来了,暂且不说,Jenkins架设完后回头再配置
简单的理解,Jenkins只不过是持续集成的一个工具而已!持续集成是什么?传送门在这里 持续集成是什么?
在这里我准备了一篇我在N年前学习Jenkins的时候留下的文章,传送门Ubuntu下搭建Jenkins
FROM jenkins/jenkins:lts-slim
MAINTAINER shuoer 690515591@qq.com
#切换为root用户
USER root
#更新当前的shell环境
SHELL ["/bin/bash", "-c"]
#指定android的版本
ARG ANDROID_VERSIONS=android-26
#指定build-tools的版本
ARG ANDROID_BUILD_TOOLS=26.0.2
#指定node的版本
ARG NODE_VERSION=setup_10.x
#android-sdk的home地址
ENV ANDROID_HOME /opt/android-sdk-linux
ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:/opt/gradle-4.1/bin
#用于干掉每次编译时总是从Google下载gradle编译工具
ENV CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=‘https://raw.githubusercontent.com/zhaoshuoer/my-docker/master/node/app/public/gradle-4.1-all.zip‘
#安装node、cordova环境
RUN curl -sL https://deb.nodesource.com/${NODE_VERSION} | bash && apt-get install -y nodejs && apt-get install -y build-essential && rm -rf /var/lib/apt/lists/* && npm install -g cordova && npm install -g yarn && curl -O https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz && tar zxvf docker-latest.tgz && cp docker/docker /usr/local/bin/ && rm -rf docker docker-latest.tgz
WORKDIR /opt
#安装android环境
RUN curl -O https://downloads.gradle.org/distributions/gradle-4.1-bin.zip && unzip gradle-4.1-bin.zip && curl -O http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz && tar zxvf android-sdk_r24.4.1-linux.tgz && mkdir /root/.android && touch /root/.android/repositories.cfg && echo y | android update sdk -a --no-ui --filter tools,platform-tools,${ANDROID_VERSIONS},build-tools-${ANDROID_BUILD_TOOLS} && rm -rf android-sdk_r24.4.1-linux.tgz && rm -rf gradle-4.1-bin.zip
# 将 `jenkins` 用户的组 ID 改为宿主 `docker` 组的组ID,从而具有执行 `docker` 命令的权限。
ARG DOCKER_GID=999
ARG DOCKER_PORT=8080
USER root:${DOCKER_GID}
EXPOSE ${DOCKER_PORT}
#如果你有梯子的话您大可等上两三个小时去编译出来
$ docker build -t jenkins .
#如果您不想编译,我也提供了编译好的Jenkins镜像
$ docker pull shuoer/jenkins:cordova
docker run -d --rm -p 8080:8080 -p 50000:50000 -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai -v "$PWD/jenkins_home":/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock --name jenkins shuoer/jenkins:cordova
如果将以上技术栈描述清楚需要不小的篇幅,所以我会将文章进行拆分:
使用 jenkins 自动化编译cordova for android 生成 APK
标签:端口冲突 roo 流行 基础 gid 服务器端 get gradle 不同的应用
原文地址:https://www.cnblogs.com/shuoer/p/9484881.html