構(gòu)建可持續(xù)編譯Android環(huán)境的Docker鏡像

在接觸Docker的這段時(shí)間里捎泻,Docker給我的Android開(kāi)發(fā)帶來(lái)了許多方便與驚喜。本文就是將Docker用于自動(dòng)化編譯Android項(xiàng)目的一次嘗試先煎。

1.構(gòu)建Android編譯環(huán)境的基礎(chǔ)鏡像

首先我們構(gòu)建一個(gè)具有Android編譯環(huán)境的基礎(chǔ)鏡像幕随,該鏡像主要是做Android SDK的下載與components的安裝顾瞻,我已將其push到了DockerHub:androidbuilder。目前的最新版本是V1.0,已安裝版本號(hào)為19宫峦、21岔帽、22、23相關(guān)的build-tool导绷。

嘗試編譯Android項(xiàng)目

有了基礎(chǔ)鏡像犀勒,我們來(lái)嘗試使用其編譯Android項(xiàng)目,在我們項(xiàng)目的根目錄添加如下Dockerfile:

ROM saymagic/androidbuilder:v1.0

MAINTAINER saymagic <saymagic.dev@gmail.com>

ENV PROJECT /project

RUN mkdir $PROJECT
WORKDIR $PROJECT

ADD . $PROJECT

RUN chmod +x ./gradlew
RUN echo "sdk.dir=$ANDROID_HOME" > local.properties && \
./gradlew --stacktrace app:dependencies

我們首先將該Dockerfile構(gòu)建成鏡像:

docker build -t saymagic/androiddockertest:v1.0 .

這樣妥曲,saymagic/androiddockertest:v1.0鏡像中就會(huì)包含了我們的項(xiàng)目账蓉,之后,我們只需要將該容器運(yùn)行起來(lái)逾一,在根目錄下輸入如下命令:

docker run -it -v $(pwd)/app:/project/app saymagic/androiddockertest:v1.0 ./gradlew build --info

此時(shí)铸本,我們就可以看到通過(guò)Docker構(gòu)建出的apk文件:

以上只是一個(gè)簡(jiǎn)單的嘗試,如果你對(duì)源碼感興趣或者想構(gòu)建自己的編譯環(huán)境遵堵,請(qǐng)參考這里:https://gist.github.com/saymagic/dcbcf1629c53e5b721c3

2.搭建持續(xù)編譯環(huán)境

第一步中我們實(shí)現(xiàn)了可以編譯Android項(xiàng)目的基礎(chǔ)鏡像箱玷,我們將其做一次大改進(jìn)怨规,繼續(xù)在基礎(chǔ)鏡像中安裝gradle與jenkins。搭建一個(gè)可以持續(xù)編譯Android項(xiàng)目的Docker環(huán)境锡足。

最終成型的鏡像在此:androidjenkins波丰,最新版本v2.0.

使用方式非常簡(jiǎn)單,在含有Docker的主機(jī)上運(yùn)行如下命令(注意指定的Volume與Port):

docker run -it -v $(pwd)/jenkins:/var/jenkins_home -p 80:8080 saymagic/androidjenkins:v2.0 ./start.sh

運(yùn)行完成之后舶得,打開(kāi)我們的主機(jī)80端口掰烟,就會(huì)看到Jenkins的身影:

此時(shí),推薦安裝如下一些Jenkins插件:

  • Gradle 插件:
  • Git 插件:
  • Fir.im的Jenkins插件:

使用方法: http://blog.fir.im/jenkins/
該插件可以將構(gòu)建后的apk文件直接上傳至Fir.im沐批,可以很方便的讓測(cè)試人員下載到最新版本纫骑。

關(guān)于Jenkins的相關(guān)使用這里不做過(guò)多介紹。至此九孩,一個(gè)可持續(xù)編譯Android的環(huán)境就已完成先馆,要知道,我們只運(yùn)行了一行代碼而已躺彬。

該鏡像的相關(guān)源碼在這里:https://github.com/saymagic/AndroidJenkins煤墙,歡迎star。

總結(jié)

綜上宪拥,我們只需要本地進(jìn)行push代碼仿野,就會(huì)更新Fir.im中的項(xiàng)目。并且整個(gè)過(guò)程非常簡(jiǎn)單她君,無(wú)需再搭建復(fù)雜Android的環(huán)境脚作。非常值得一試。

但需要提醒大家的是整個(gè)鏡像還是相當(dāng)大的犁河,并且對(duì)于內(nèi)存的需求也是很高鳖枕,比如不到1G內(nèi)存的虛擬機(jī)就不要嘗試了。推薦digitalocean的新加坡機(jī)房桨螺,上2G內(nèi)存宾符,直接選擇含有Docker的主機(jī),速度相當(dāng)不錯(cuò)灭翔,因?yàn)樵趪?guó)外魏烫,也無(wú)需為各種類(lèi)庫(kù)無(wú)法下載而苦惱。我相信一刻鐘的時(shí)間你就會(huì)看到成型的效果肝箱。Enjoy it哄褒!

參考

http://ainoya.io/docker-android-walter

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市煌张,隨后出現(xiàn)的幾起案子呐赡,更是在濱河造成了極大的恐慌,老刑警劉巖骏融,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件链嘀,死亡現(xiàn)場(chǎng)離奇詭異萌狂,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)怀泊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)茫藏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人霹琼,你說(shuō)我怎么就攤上這事务傲。” “怎么了枣申?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵售葡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我糯而,道長(zhǎng)天通,這世上最難降的妖魔是什么泊窘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任熄驼,我火速辦了婚禮,結(jié)果婚禮上烘豹,老公的妹妹穿的比我還像新娘瓜贾。我一直安慰自己,他們只是感情好携悯,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布祭芦。 她就那樣靜靜地躺著,像睡著了一般憔鬼。 火紅的嫁衣襯著肌膚如雪龟劲。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天轴或,我揣著相機(jī)與錄音昌跌,去河邊找鬼。 笑死照雁,一個(gè)胖子當(dāng)著我的面吹牛蚕愤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播饺蚊,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼萍诱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了污呼?” 一聲冷哼從身側(cè)響起裕坊,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎燕酷,沒(méi)想到半個(gè)月后籍凝,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體映企,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年静浴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了堰氓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡苹享,死狀恐怖双絮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情得问,我是刑警寧澤囤攀,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站宫纬,受9級(jí)特大地震影響焚挠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜漓骚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一蝌衔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蝌蹂,春花似錦噩斟、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至齐鲤,卻和暖如春斥废,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背给郊。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工牡肉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人丑罪。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓荚板,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親吩屹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子跪另,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容