当前位置:   article > 正文

使用docker创建自己的Android编译容器_docker android

docker android

背景

每次拿到新机器或者系统重装,最麻烦的就是各种环境配置,最近学习了一下docker的知识,用dockerfile创建一个Android编译容器,这样就不用每次都吭哧吭哧的配置各种环境,至少编译可以方便点,开发环境还是得手动配的。

步骤

1.创建Dockerfile

新建一个目录,创建Dockerfile,并在这个目录下创建apps文件夹,在这个文件夹下放入jdk和commandlinetools,这个需要我们去官网上下载。
在这里插入图片描述
jdk:https://www.oracle.com/java/technologies/downloads/
commandline:https://developer.android.com/studio?gclid=Cj0KCQiA4Y-sBhC6ARIsAGXF1g5cCwfbTSfschbk_6x-YpZv3lN5PEDKAX3x18d71w54crTtfJYitbYaAoCpEALw_wcB&gclsrc=aw.ds&hl=zh-cn
在这里插入图片描述

2.编写Dockerfile指令
# 基于ubuntu基础镜像
FROM ubuntu:latest

# 安装常用命令
RUN apt-get update \
	&& apt-get install -y curl \
    && apt-get install -y wget \
    && apt-get install -y zip \
    && apt-get install -y unzip \
    && apt-get install -y tar \
    && apt-get install -y lsof \
    && apt-get install -y git \
    && apt-get install -y git-lfs \
    && git lfs install \
    && apt-get install -y tar \
    && apt-get install -y python3 \
    && apt-get clean all
	

#设置工作目录
WORKDIR /home
COPY apps/ /home/

# 设置java环境
RUN mkdir -p /opt/app/jdk \
    && tar -xzvf jdk-17_linux-x64_bin.tar.gz -C /opt/app/jdk \
    && rm jdk-17_linux-x64_bin.tar.gz
ENV JAVA_HOME=/opt/app/jdk/jdk-17.0.9
ENV PATH=$PATH:$JAVA_HOME/bin

# 设置android环境
RUN mkdir -p /opt/app/android-sdk \
    && unzip commandlinetools-linux-10406996_latest.zip -d /opt/app/android-sdk/ \
    && rm commandlinetools-linux-10406996_latest.zip \
    && mkdir -p /opt/app/android-sdk/cmdline-tools/latest \
    && find /opt/app/android-sdk/cmdline-tools/ -maxdepth 1 -mindepth 1 -not -name 'latest' -exec mv {} /opt/app/android-sdk/cmdline-tools/latest/ \;
ENV ANDROID_HOME=/opt/app/android-sdk
ENV PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin

# 安装需要的platforms和build-tools版本
RUN yes | /opt/app/android-sdk/cmdline-tools/latest/bin/sdkmanager "platforms;android-34" \
    && yes | /opt/app/android-sdk/cmdline-tools/latest/bin/sdkmanager "build-tools;30.0.3" 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

这里的指令还是比较简单的,比如 COPY 就可以将apps文件夹下的文件复制到容器的home目录,ENV设置环境变量,RUN可以执行shell命令。
需要注意的是,RUN和COPY指令都会增加容器的层级,所以我们尽可能的将可以合并的指令通过 && 连接起来,以此来减少容器的层级,减少容器的大小。

3.编译

在根目录下执行以下指令

docker build -t android-package:0.0.1 . 
  • 1

等待执行完成就可以看到我们编译出来的镜像了
在这里插入图片描述

4.使用

我们用这个镜像创建一个容器,并进入到这个容器中

docker run -it android-package:0.0.1 /bin/bash
  • 1

发现已经有java的环境变量了
在这里插入图片描述
再clone一个工程,尝试编译,发现能够编译成功。
在这里插入图片描述
大功告成!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/469494
推荐阅读
相关标签
  

闽ICP备14008679号