如何用Docker安裝Eclipse Che和Codenvy

責(zé)任編輯:editor005

作者:時速云趙帥龍編譯

2015-09-07 14:26:24

摘自:TechTarget中國

現(xiàn)在是時候使用Docker安裝一個多節(jié)點Codenvy On-Prem和Eclipse Che了。Codenvy On-Prem multi-node所有的容器必須在特權(quán)模式下運行,這種模式允許容器以near-root訪問進程和運行在其主機上的文件。

現(xiàn)在是時候使用Docker安裝一個多節(jié)點Codenvy On-Prem和Eclipse Che了。

Docker容器包裝一塊軟件到一個文件系統(tǒng),這里面包含一切它運行的要素:code、 runtime、system tools以及l(fā)ibraries。不管運行環(huán)境如何,容器總是保證相同的運行。容器將打包和部署轉(zhuǎn)化為獨立單元,使軟件開發(fā)團隊更容易提高DevOps效率。

Codenvy一直使用容器支持builds, runners以及 workspaces好幾年了。我們現(xiàn)在支持在容器內(nèi)運行Codenvy。

Eclipse Che

Eclipse Che是一個現(xiàn)代的、開放源代碼的軟件開發(fā)環(huán)境。它是一個通過提供結(jié)構(gòu)化的工作區(qū)、項目輸入、模塊化擴展插件來支持Codenvy的引擎。Che可以用作桌面IDE,RESTful工作空間服務(wù)器,或作為一個創(chuàng)建新的工具SDK。我們現(xiàn)在支持一個有標簽的Docker images啟動一個默認Eclipse Che。

 

Eclipse

 

容器的容器是無狀態(tài)的,重復(fù)運行將清除保存在容器內(nèi)數(shù)據(jù)。你可以保存你的工作區(qū)到外部容器的external volume。

如果你不想麻煩安裝volume,還可以snapshot容器,并且保存一個新的image到本地磁盤。然后你可以啟動保存的圖像,它重啟容器在最后保存的狀態(tài)。這個過程是有狀態(tài)的,但你必須等待snapshot 寫和讀操作完成。

 

2

 

Multi-Node Codenvy On-PremCodenvy On-Prem 是Codenvy的一個版本,你可以運行在自己的服務(wù)器上。也可以作為一個單節(jié)點(在一個主機上)或作為一個多節(jié)點系統(tǒng)運行 (服務(wù)跨集群以及分布在不同的主機上)。對我們來說,簡單和快速安裝、升級、備份,并定制Codenvy On-Prem一直是我們的最高目標。

你現(xiàn)在可以使用Docker安裝Codenvy On-Prem多節(jié)點。

雖然這安裝技術(shù)是生產(chǎn)測試,請閱讀下面的報告,你可以熟悉一下這里面的一些特定的訪問控制和使用Docker可能會遇到的風(fēng)險。這個安裝程序只支持Linux。

Some Special Codenvy MagicCodenvy On-Prem需要八個節(jié)點。有了這個安裝程序,我們在它們自己的容器啟動每個節(jié)點。八大容器都是相同的——從一個specialized CentOS 7 image的實例化??誄entOS容器啟動后,我們調(diào)用Codenvy’s bootstrap installer,依次進行,Puppet下載安裝并配置Codenvy。

Codenvy需要每個節(jié)點配置一個匹配字符串模式的hostname。但是為了各種容器看到對方,存在于每個容器的/etc/hosts文件必須隨著其他容器的IP地址更新。這些IP地址將在容器啟動之后才會知道。所以安裝程序有一些額外的邏輯啟動容器,發(fā)現(xiàn)它們的IP地址,并執(zhí)行到每個容器,并隨著其他容器的IP地址更新/etc/hosts文件。我們執(zhí)行這項工作來創(chuàng)建一個可發(fā)現(xiàn)的、連接網(wǎng)絡(luò)的容器,驗證之后,Codenvy引導(dǎo)安裝開始。當(dāng)重啟已經(jīng)保存的容器,我們做一個類似的進程利用任一個新的IP地址更新每個容器。

看似簡單的容器。從表面上看,它們是很小的部署單位。你從一個image激活一個容器就搞定一切。容器執(zhí)行通常是無狀態(tài)的,每個執(zhí)行不記得之前的執(zhí)行。這意味著內(nèi)部狀態(tài)數(shù)據(jù),比如我們在LDAP和MongoDB對用戶的存儲必須具體化。

你可以從一個用于未來運行的容器創(chuàng)建新的images。我們已經(jīng)嵌入停止和重啟選項到安裝腳本里,這會讓你的容器狀態(tài)作為layer寫進image。在將來的版本中,我們將支持容器編排器Docker Swarm,這將給你另外一種方法具體化內(nèi)部數(shù)據(jù)。

Security & Stability ConsiderationsCodenvy On-Prem的Docker安裝不支持單節(jié)點配置。單節(jié)點Codenvy打包非常打,而且Docker不適合在一個容器中運行數(shù)十個微服務(wù)。

Codenvy On-Prem multi-node所有的容器必須在特權(quán)模式下運行,這種模式允許容器以near-root訪問進程和運行在其主機上的文件。這是必要的,有兩個原因:

1、我們的runner nodes必須在Docker里面運行Docker容器。

2、我們使用Puppet執(zhí)行內(nèi)部配置管理,它需要訪問所有節(jié)點,甚至一些等底層主機如AppArmor或SELinux的文件。

特許模式在不同的操作系統(tǒng)下不穩(wěn)定。你可以嘗試一下。

英文原文鏈接:http://blog.codenvy.com/eclipse-che-codenvy-docker/

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號