美文网首页
Docker + Jenkins + Android 环境搭建

Docker + Jenkins + Android 环境搭建

作者: 丶MrZhu | 来源:发表于2021-11-04 20:03 被阅读0次

    本文通过 群晖 使用docker搭建Jenkins + Android构建环境

    硬件设备:黑群晖6.2.3
    主要是通过dockerfile创建的Jenkins容器以及使用,这样可以定制化

    dockerfile

    创建一个文件“dockerfile”,在文件中写入如下代码

    # 基于已有的镜像 jenkins/jenkins 来构建新镜像
    FROM jenkins/jenkins
    
    MAINTAINER zhushuai
    
    USER root
    
    RUN apt update -y && apt upgrade -y && apt install wget unzip -y
    
    # 设置变量
    ENV USR_LOCAL="/usr/local" \
         ANDROID_HOME="${USR_LOCAL}/AndroidSdk" \
         SDK_TOOL_URL="http://192.168.31.6:8088/s/n5cZ5Bjs8cpDENJ/download/cmdline-tools.zip"
    #https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip
    
    # 创建android sdk目录,并下载 sdkmanager
    RUN mkdir -p ${ANDROID_HOME} \
         && cd $ANDROID_HOME \
         && curl -o sdk.zip $SDK_TOOL_URL \
         && unzip sdk.zip \
         && rm sdk.zip
    
    #RUN mkdir ${ANDROID_HOME}/cmdline-tools/latest 
    #COPY ${ANDROID_HOME}/cmdline-tools/bin/ ${ANDROID_HOME}/cmdline-tools/latest 
    #COPY ${ANDROID_HOME}/cmdline-tools/lib/ ${ANDROID_HOME}/cmdline-tools/latest 
    #COPY ${ANDROID_HOME}/cmdline-tools/NOTICE.txt ${ANDROID_HOME}/cmdline-tools/latest 
    #COPY ${ANDROID_HOME}/cmdline-tools/source.properties ${ANDROID_HOME}/cmdline-tools/latest 
    
    RUN echo "export PATH=/AndroidSdk/cmdline-tools/latest/bin" >> ~/.bashrc
    
    
    # 安装android sdk其他package, 输入y是因为此处会有一个licence,需要用户同意后才会安装
    RUN echo y | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager "platform-tools" "platforms;android-28" "build-tools;28.0.3" "ndk-bundle" "cmake;3.6.4111459"
    
    
    # 设置环境变量: 把 android sdk 路径加入到 PATH 中
    ENV PATH ${ANDROID_HOME}/cmdline-tools/latest:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${PATH}
    

    Jenkins构建android主要需要:

    1. JDK(Jenkins 本身就是运行在Java上,所以不需要安装。但是要注意,最新的Jenkins已经大于JDK8)
    2. Gradle (最新的Jenkins已经大于JDK8,如果用老版本的Gradle会有问题,推荐用最新的)
    3. Android SDK (可以通过sdkmanager去下载)

    剩下的就是环境变量的设置,这些都已经在dockerfile中写好了直接运行即可

    构建镜像

    使用如下命令创建镜像

    docker build -t jenkins_android -f  ./dockerfile . 
    

    注意 此时你的终端工作路径 应该是这个dockerfile的文件夹路径下,第一个“jenkins_android”是生成的镜像名字,第二个“dockerfile”是第一步文件保存的名称


    命令执行完成后的构建结果

    查看生成的文件名称

    docker images
    

    因为下载了gradle等 android 需要的文件 所以镜像比较大,下载比较慢,网速慢的需要耐心等待一下


    image.png

    构建容器

    docker run -p 8080:8080 -p 5000:5000 --name jenkins  -u root  -v /Users/docker/jenkins:/var/jenkins_home  -d jenkins_android
    

    -p 端口设置
    -d 后台运行,不用终端一只等着
    -v 容器文件映射到本地,“/Users/docker/jenkins”是需要修改成自己的目录,这里包含着jenkins的数据,以后可以迁移的时候直接打包带走
    --name 指定运行后的容器名称 ,可以自定义
    jenkins_android 是上面dockerfile文件生成镜像的名称,注意跟上面执行的时候一致即可

    然后使用你的IP地址+端口号(如:127.0.0.1:8080)在浏览器中就可以访问jenkis了


    Jenkins

    注意事项 ⚠️

    细心的同学就会发现dockerfile中的问题,下面👇的这个地址是本地的地址,根本就下载不到的😂

    http://192.168.31.6:8088/s/n5cZ5Bjs8cpDENJ/download/cmdline-tools.zip
    

    这个就是“https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip”上下载的文件,并不是文件无法下载,而是要使用这个文件中的sdkmanager下载sdk还有ndk,直接解压使用有问题,具体是啥我忘记了,解决方法就是从“https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip”下载下来文件,解压后将所有文件增加一级latest目录,然后从新压缩,自己放到一个文件文件服务器上即可,我这里就暂时不提供文件服务器了,我自己压缩好的文件可以在评论区上一个某网盘的链接

    需要增加一级目录文件

    相关文章

      网友评论

          本文标题:Docker + Jenkins + Android 环境搭建

          本文链接:https://www.haomeiwen.com/subject/znbkzltx.html