[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 一樣的事了~
(本頁面已被瀏覽過 859 次)