[Docker] 用 docker 跑 OpenGrok server,索引資料放本機

[Docker] 用 docker 跑 OpenGrok server,索引資料放本機

之前寫過一篇用 docker 跑 OpenGrok server

不過後來發現這個 image 有個缺點,就是 OpenGrok 索引後的資料是存在 container 裡面,

因此關掉 container 之後,下次開 container 又得重新做索引,很花時間…

 

另外找了一個下載數沒那麼多的映像檔 scue/docker-opengrok,

發現它有將原始碼和索引資料的目錄分開,兩個目錄都可以對映到 host 端,

因此 container 關閉重啟後,不需要重建索引,這種作法實用許多了~

 

舉例來說,我想研究 p7zip 的原始碼,原始碼放在 ~/p7zip_15.14.1 目錄下,

然後我想將索引資料放在 ~/OpenGrokData/p7zip_15.14.1 目錄下,

就可以用下面的 docker 指令:

docker run --rm -v ~/p7zip_15.14.1:/src -v ~/OpenGrokData/p7zip_15.14.1:/data -p 8888:8080 scue/docker-opengrok

 

如果想要同時跑一堆 OpenGrok 來索引不同的目錄,只要多跑幾個 container,

去分別索引不同的原始碼目錄,並將索引資料放在不同的目錄下就可以了~ 

(像是 ~/OpenGrokData/lib7zip, ~/OpenGrokData/qemu, …)

當然如果這些 container 要同時跑的話,對應到的 port 要選一下…

 

後記:後來發現雖然 Dockerfile 裡沒有寫 VOLUME,

但仍然可以強制下 -v 來將 OpenGrok 的索引目錄對映到 host 端,

這樣的話原本用的那個 itszero/opengrok 映像檔,就也可以作到跟 scue/docker-opengrok 一樣的事了~

 

 

(本頁面已被瀏覽過 854 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料