實(shí)戰(zhàn):如何在IDE中使用Docker?
這是一個(gè)新穎的想法,在碼農(nóng)的IDE環(huán)境中,若是可以很方便地使用Docker,真是一件很有意思的事:對(duì)Dockerfile或者Compose YML文件進(jìn)行語法高亮、自動(dòng)補(bǔ)全、語法驗(yàn)證,甚至還可以直接在IDE中啟動(dòng)這個(gè)Docker容器來進(jìn)行更深入的測(cè)試或者開發(fā)。讓懶惰的程序員們可以更高效地利用時(shí)間,專注于解決應(yīng)用本身的問題。有興趣的小伙伴,可以搜搜有沒有更好的可以分享分享,或者幫助社區(qū)寫另一個(gè)優(yōu)秀的工具出來。
這個(gè)博客帖子是關(guān)于如何集成Docker到我們的IDE中。讓我們有機(jī)會(huì)介紹一個(gè)Eclipse插件doclipser,可以在IDE中編輯、構(gòu)建和運(yùn)行Docker容器。
Docker的開發(fā)環(huán)境
在深入Docker和IDE集成細(xì)節(jié)之前,讓我們看看,為什么得要把Docker放進(jìn)必需的開發(fā)工具列表中。
構(gòu)建系統(tǒng)
首先,Docker能夠使我們的構(gòu)建環(huán)境具有便攜、可重復(fù)以及隔離的特性。舉個(gè)例子:你需要使用5.1版本的gcc工具構(gòu)建一個(gè)C文件。 所需要做的就是運(yùn)行以下命令(當(dāng)然,這里假定你已經(jīng)安裝了Docker):
- docker run gcc:5.1 gcc -o helloworld helloword.c
神奇的是,你可以在任何地方運(yùn)行它,你不需要考慮庫文件、沖突或者gcc的安裝。只要它能在你的筆記本上跑起來,也就可以在集成服務(wù)器上運(yùn)行了。
運(yùn)行環(huán)境
同樣適用于運(yùn)行環(huán)境。如果你只想在tomcat 8上運(yùn)行Java Web應(yīng)用程序,可以只使用:
- docker run tomcat:8 -v HelloWorld.war:/usr/local/tomcat/webapps/Helloworld.war
同樣,你不用擔(dān)心依賴性、平臺(tái)配置或Linux發(fā)行版的差異,這些Docker都能搞定。
Docker和IDE
好吧,上面已經(jīng)非常清楚地說明了,Docker對(duì)開發(fā)如此有用的原因。就像我們描述的,你可以使用喜歡的shell來執(zhí)行這些命令。 問題是,開發(fā)者都是懶惰的。這意味著,如果我們?cè)谧钕矚g的IDE中碼字,就不希望跑到IDE外面來使用Docker。我們想直接從IDE中運(yùn)行容器。
不幸的是,現(xiàn)在主要的IDE都不支持Docker。
所以,你是不是很想看到IDE中集成了Docker?
你想要在容器中運(yùn)行IDE?
- docker run eclipse
汗,這不是容器的使用方式。在容器里面運(yùn)行圖形化應(yīng)用程序,還是太過復(fù)雜也缺少可移植性。
你想要從IDE中運(yùn)行容器?
是哦!我們希望能看到支持Dockerfile和Compose YML文件,希望IDE構(gòu)建系統(tǒng)和運(yùn)行環(huán)境能在容器內(nèi)跑。讓我們來看看詳細(xì)的需求:
Dockerfile的支持
Dockerfile支持應(yīng)該帶有語法高亮顯示,自動(dòng)補(bǔ)全(當(dāng)按下Ctrl+SPACE鍵,dockerfile指令會(huì)自動(dòng)彈出來)和語法驗(yàn)證(在執(zhí)行docker build之前,IDE要能指出語法錯(cuò)誤)
Compose YML文件的支持
更有意思的是對(duì)Compose YML文件的支持。這將允許定義容器間的關(guān)系,如Link和Volume,也可以從你的編輯器一次啟動(dòng)多個(gè)容器。真的很酷!
#p#
IDE構(gòu)建系統(tǒng)
當(dāng)然,你需要得到IDE中運(yùn)行容器的支持。具體地,容器可以構(gòu)建你的源文件。如果利用Docker多種語言特性,這可能變得更容易。
IDE運(yùn)行環(huán)境
我們期待IDE的最后一項(xiàng)功能,應(yīng)該是能夠在Docker容器內(nèi)部啟動(dòng)運(yùn)行環(huán)境。
doclipser簡介
根據(jù)上述四個(gè)功能,我們構(gòu)建了doclipser,編輯Eclipse插件、構(gòu)建和運(yùn)行Docker容器。
doclipser支持Dockerfile:語法高亮顯示,自動(dòng)補(bǔ)全和語法驗(yàn)證。雖仍沒有支持Docker Compose YML文件,但已經(jīng)可以執(zhí)行一些Docker的命令,來構(gòu)建源文件或啟動(dòng)運(yùn)行環(huán)境。
doclipser不是唯一的Docker Eclipse插件。這兒有一個(gè)非常好的Eclipse Docker工具集(http://tools.jboss.org/blog/2015-03-30-Eclipse_Docker_Tooling.html)(以下簡稱:EDT),由JBoss維護(hù)并且和Eclipse的Linux工具包一起分發(fā)。 即使它們都能使大家在IDE中使用Docker,doclipser和EDT還是兩種不同的方法:
- doclipser通過對(duì)Dockerfiles的支持,專注于編輯和運(yùn)行容器,在未來的版本中,將提供對(duì)Docker Compose YML文件的支持。
- EDT對(duì)Docker鏡像和容器擁有更高級(jí)的管理方式,但缺乏對(duì)Dockerfiles的支持。
doclipser demo from Mario Loriedo on Vimeo.(http://www.56.com/u92/v_MTM3NzM3NzY5.html#fromoutpvid=MTM3NzM3NzY5)
- domeide.github.io
Doclipser并不是將Docker集成到IDE的唯一的工具。我們正在建設(shè)一個(gè)GitHub的頁面,收集所有已存在的工具:http://domeide.github.io
- 這里已包括:
- Sublime Docker(https://packagecontrol.io/packages/Docker%20Based%20Build%20Systems)
- IntelliJ IDEA 14.1(http://blog.jetbrains.com/idea/2015/03/docker-support-in-intellij-idea-14-1/)
- Eclipse JBoss Tools(http://tools.jboss.org/blog/2015-03-30-Eclipse_Docker_Tooling.html)
- Visual Studio 2015 RC Tools for Docker預(yù)覽版(https://visualstudiogallery.msdn.microsoft.com/6f638067-027d-4817-bcc7-aa94163338f0)
博文出處:http://www.dockone.io/article/464