項(xiàng)目網(wǎng)格化管理方案外貿(mào)seo推廣
文章目錄
- 背景
- 步驟
- 1.創(chuàng)建Dockerfile
- 2.編寫Dockerfile指令
- 3.編譯
- 4.使用
背景
每次拿到新機(jī)器或者系統(tǒng)重裝,最麻煩的就是各種環(huán)境配置,最近學(xué)習(xí)了一下docker的知識(shí),用dockerfile創(chuàng)建一個(gè)Android編譯容器,這樣就不用每次都吭哧吭哧的配置各種環(huán)境,至少編譯可以方便點(diǎn),開(kāi)發(fā)環(huán)境還是得手動(dòng)配的。
步驟
1.創(chuàng)建Dockerfile
新建一個(gè)目錄,創(chuàng)建Dockerfile,并在這個(gè)目錄下創(chuàng)建apps文件夾,在這個(gè)文件夾下放入jdk和commandlinetools,這個(gè)需要我們?nèi)ス倬W(wǎng)上下載。
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基礎(chǔ)鏡像
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#設(shè)置工作目錄
WORKDIR /home
COPY apps/ /home/# 設(shè)置java環(huán)境
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# 設(shè)置android環(huán)境
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"
這里的指令還是比較簡(jiǎn)單的,比如 COPY 就可以將apps文件夾下的文件復(fù)制到容器的home目錄,ENV設(shè)置環(huán)境變量,RUN可以執(zhí)行shell命令。
需要注意的是,RUN和COPY指令都會(huì)增加容器的層級(jí),所以我們盡可能的將可以合并的指令通過(guò) && 連接起來(lái),以此來(lái)減少容器的層級(jí),減少容器的大小。
3.編譯
在根目錄下執(zhí)行以下指令
docker build -t android-package:0.0.1 .
等待執(zhí)行完成就可以看到我們編譯出來(lái)的鏡像了
4.使用
我們用這個(gè)鏡像創(chuàng)建一個(gè)容器,并進(jìn)入到這個(gè)容器中
docker run -it android-package:0.0.1 /bin/bash
發(fā)現(xiàn)已經(jīng)有java的環(huán)境變量了
再clone一個(gè)工程,嘗試編譯,發(fā)現(xiàn)能夠編譯成功。
大功告成!