前面兩篇文章介紹了:
Docker基本概念和操作:鏈接
Docker的安裝:鏈接
下面介紹一下使用Docker來(lái)完成一些開發(fā)中的工作,這里是構(gòu)建Robolectric。主要是因?yàn)橛行┑胤骄W(wǎng)絡(luò)太復(fù)雜,經(jīng)常依賴包安裝不成功,導(dǎo)致編譯很難成功。所以才想到了創(chuàng)建一個(gè)Docker鏡像,保存編譯Robolectric需要的環(huán)境。便于在其它地方使用。
下面介紹一下具體操作方法。
查找Docker Hub是否有相關(guān)的Image
比如Robolectric編譯需要android sdk環(huán)境,參見下面網(wǎng)址:
https://github.com/robolectric/robolectric/
其中的Building And Contributing:
./scripts/install-dependencies.rb
./gradlew clean assemble install compileTest
需要mvn和ruby,還需要有android sdk。
因此搜索 Docker Hub是否有android相關(guān)的鏡像:
網(wǎng)頁(yè)搜索或者命令行搜索:
docker search android
如果找到,則下載它運(yùn)行:
比如,我們找到下面這個(gè)跟我們需求比較一致:
https://hub.docker.com/r/runmymind/docker-android-sdk/
于是用下面命令下載它:
docker pull runmymind/docker-android-sdk
它的體積比較大,鏡像6G,安裝后有20G。
同時(shí),我們可以參考它的Dockerfile
https://hub.docker.com/r/runmymind/docker-android-sdk/~/dockerfile/
創(chuàng)建一個(gè)github項(xiàng)目自動(dòng)構(gòu)建鏡像
本來(lái)一開始是打算本地構(gòu)建鏡像,由于網(wǎng)絡(luò)原因,apt-get install安裝軟件失敗。
后來(lái)創(chuàng)建一個(gè)github項(xiàng)目,讓它與Docker Hub關(guān)聯(lián)起來(lái)自動(dòng)構(gòu)建。
https://github.com/sinojelly/build-robolectric/
注意:
1、需要把runmymind/docker-android-sdk鏡像中的/opt/tools和$ANDROID_HOME/licenses 目錄上傳到github項(xiàng)目Dockerfile同一級(jí)目錄。
2、刪除模擬器需要用的images的安裝。
3、apt-get install的時(shí)候加上--no-install-recommends ,節(jié)省空間。
最終構(gòu)建的鏡像:
https://hub.docker.com/r/sinojelly/build-robolectric/
體積是4G。
下載該鏡像的方法:
docker pull sinojelly/build-robolectric