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

Docker + Jenkins节点 + Android 环境搭

作者: 丶MrZhu | 来源:发表于2022-10-03 22:06 被阅读0次

    本文主要使用时dockerfile构建,主要通过JaveWeb连接
    dockerfile中包含AndroidSdk,FlutterSdk,Jdk11

    废话不多说,先看dockerfile,有注释

    # 基于已有的镜像 jenkins/inbound-agent 来构建新镜像
    FROM jenkins/inbound-agent
    
    MAINTAINER xxx
    
    USER root
    
    # 暴漏给外部的文件夹(选配,暂时没啥用,先写上 万一以后用上了)
    VOLUME /file
    
    # 更新容器配置
    RUN apt update -y && apt upgrade -y && apt-get install curl && apt install wget unzip -y && apt install -y xz-utils 
    
    # 设置变量
    ENV USR_LOCAL="/opt"
    ENV ANDROID_HOME="${USR_LOCAL}/android" \
         SDK_TOOL_URL="https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.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 echo "export PATH=/var/local/sdk/cmdline-tools/latest/bin" >> ~/.bashrc
    RUN echo "export PATH=/bin:/usr/bin:$PATH" >> ~/.bashrc
    
    # 设置环境变量: 把 android sdk 路径加入到 PATH 中
    ENV PATH ${ANDROID_HOME}/cmdline-tools/latest:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${PATH}
    
    # 安装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"
    
    
    # 设置Flutter变量
    ENV FLUTTER_HOME="${USR_LOCAL}/flutter" \
         FLUTTER_SDK_TOOL_URL="https://storage.flutter-io.cn/flutter_infra_release/releases/stable/linux/flutter_linux_3.3.2-stable.tar.xz"
    # 创建Flutter sdk目录,并解压
    RUN mkdir -p ${FLUTTER_HOME} \
         && cd $FLUTTER_HOME \
         && curl -o flutter_sdk.tar.xz $FLUTTER_SDK_TOOL_URL \
         && tar -xvf flutter_sdk.tar.xz \
         && rm flutter_sdk.tar.xz
    RUN echo "export PATH=/opt/flutter/bin" >> ~/.bashrc
    
    # 不需要jdk11 因为 默认就是jdk11
    # ENV JDK11_HOME="${USR_LOCAL}/jdk11" \
    #      JDK11_TOOL_URL="http://192.168.31.32:8011/api/public/dl/gwtAZD1K"
    # RUN  mkdir -p ${JDK11_HOME} \
    #      && cd $JDK11_HOME \
    #      && curl -o jdk11.tar.gz $JDK11_TOOL_URL \
    #      && tar -xvf jdk11.tar.gz \
    #      && rm jdk11.tar.gz
    
    # 容器构建命令
    # docker build -t jenkins-agent:1.0.0 -f  ./dockerfile . 
    
    # 启动容器命令
    # docker run -itd --name jenkins-agent  -u root  jenkins-agent:1.0.0 -url http://192.168.31.32:8090 -workDir=/Users/xxx/Downloads/docker/jenkins 6e40d2862ffdb18ec2bf3884c7f712fxxxxxxxxxxxxxxxxxxxx CenterOS
    
    

    通过dockerfile构建容器images镜像

    #容器构建命令(jenkins-agent:1.0.0 就是构建出来的docker image名字)
    docker build -t jenkins-agent:1.0.0 -f  ./dockerfile . 
    

    启动容器命令

    # 启动容器命令
    #详情 请查看 https://hub.docker.com/r/jenkins/inbound-agent
    docker run -itd --name jenkins-agent  -u root  jenkins-agent:1.0.0 -url http://192.168.31.32:8090 -workDir=/Users/xxx/Downloads/docker/jenkins 6e40d2862ffdb18ec2bf3884c7f712fxxxxxxxxxxxxxxxxxxxx CenterOS
    

    Jenkins节点配置

    新建节点
    节点配置图
    节点名称配置

    (⚠️注意,节点名称一定要和构建容器的名称一样,文中用的是CenterOS)


    节点名称

    节点基本配置

    基本配置

    JDK11环境变量配置

    JDK11环境变量配置

    ANDROID_HOME 已在dockerfile构建的时候设置了环境变量 所以无需配置
    Flutter环境变量暂未配置,我是在任务构建的时候设置的环境变量

    export PATH="$PATH:/var/jenkins_home/sdk/flutter/bin"
    

    具体如图:


    image.png

    相关文章

      网友评论

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

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