在深入Docker和IDE細節之前,讓我們看看,為什麽得把Docker放進必需的開發工具列表中。
構建系統
首先,Docker能夠使我們的構建環境便攜,可重復以及保持隔離。舉個例子:妳需要使用5.1版本的gcc工具構建壹個C文件。 所有需要做的就是運行以下命令(當然,這裏假定妳已經安裝了Docker):
docker run gcc:5.1 gcc -o helloworld helloword.c
神奇的是,妳可以在任何地方運行它,妳不必理會依賴的庫文件、之前的沖突或者gcc的安裝。只要它能在妳的筆記本上跑起來,也就可以在集成服務器上運行了。
運行環境
同樣適用於運行時環境。如果妳只想在tomcat 8上運行Java Web應用程序,可以只使用:
docker run tomcat:8 -v HelloWorld.war:/usr/local/tomcat/webapps/Helloworld.war
同樣,妳不用擔心依賴性,平臺配置或Linux發行版的差異,這些Docker都能搞定。
Docker和IDE
好吧,這應該很清楚,為什麽現在Docker對開發真的非常有用。就像我們描述的,妳可以使用喜歡的shell來執行這些命令。 問題是,開發者都是懶惰的。這意味著,如果我們在最喜歡的IDE中碼字,就不希望跑到IDE外面來使用Docker。我們想直接從IDE中運行容器。
不幸的是,現在主要IDE都不支持Docker。
所以,妳是不是很想看到IDE中集成了Docker?
妳想要在容器中運行IDE?
docker run eclipse
汗,這不是容器的使用方式。在容器裏面運行圖形化應用程序,太過復雜也缺少可移植性。
妳想要從IDE中運行容器?
是哦!我們希望能看到對Dockerfile,Docker Compose YML文件的支持,IDE構建系統和容器內的運行時環境。讓我們來看看詳細的需求:
Dockerfile的支持
Dockerfile支持應該帶有語法高亮顯示,自動補全(當按下Ctrl+SPACE鍵,dockerfile指令會自動彈出來)和語法驗證(在執行 docker build 之前,IDE要能指出語法錯誤)
Docker Compose YML文件的支持
更有意思的是對Docker Compose YML文件的支持。這將允許定義容器間的關系,如Link和Volume,也可以從妳的編輯器壹次啟動多個容器。真的很酷!
IDE構建系統
當然,妳需要得到IDE中運行容器的支持。具體地,容器可以構建妳的源文件。如果利用Docker多種語言特性,這可能變得更容易。
IDE運行時環境
我們期待IDE的最後壹項功能,能夠啟動容器的運行時環境。
doclipser簡介
根據上述四個功能,我們構建了doclipser,壹個Eclipse插件來編輯,構建和運行Docker容器。
doclipser支持Dockerfile:語法高亮顯示,自動補全和語法驗證。雖仍沒有支持Docker Compose YML文件,但已經可以執行壹些Docker的命令,來構建源文件或啟動運行時環境。
doclipser不是唯壹的Docker Eclipse插件。這裏有壹個很優秀的Eclipse Docker工具集(以下簡稱:EDT),由JBoss維護且和Eclipse的Linux工具包壹起分發。 即使它們都能使大家在IDE中使用Docker,doclipser和EDT還是兩種不同的方法:
doclipser通過對Dockerfiles的支持,專註於編輯和運行容器,在未來的版本中,將提供對Docker Compose YML文件的支持。
EDT對Docker鏡像和容器擁有更高級的管理方式,但缺乏對Dockerfiles的支持。
domeide.github.io