使用Docker進行Java開發
【編者的話】這是一篇入門級的學習教程,推薦Java開發者閱讀,作者通過一個簡單的例子演示了如何在Docker中進行Java開發。不需要Maven、不需要JDK,你只需要給你的小伙伴一個Dockerfile,剩下的事情交給Docker去完成吧。
這周,我和Anna、Stephan、Timo在
慕尼黑的W-Jax開了一個關于企業技術(特別針對Java)的會議。沒想到居然有這么多的人對Docker感興趣,但問題是怎么在Docker上進行
Java開發呢?我個人比較喜歡短小的示例,它可以通過包含幾個小文件的框架幫助你了解某個技術。不幸的是,這在Java的世界很難實現,因為大多數的示
例都需要某個IDE以及適當的對Web框架有所了解。在這篇文章中,我將嘗試使用短小的示例,以幫助你快速學習如何在Docker中進行Java開發。
準備工作
現在有非常多的Java Web框架,但我這里并不打算使用它們。我只想要的是一個小的框架所以我選擇了Spark,它是一個基于Java 8的極小的框架。Spark使用Maven作為構建工具。
源代碼和配置文件
在這個例子中你要增加三個文件:- Maven的配置文件: pom.xml
- 一個Java類:Hello.java
- 一個Dockerfile </ul>
如果有讀者等不及了,可以克隆這個repo:
https://github.com/giantswarm/sparkexample下面我們會詳細解釋這三個文件的結構,你可以此視頻來快速了解。(讀者可以查看原文中的視頻,看完視頻基本可以了解怎么做)
pom.xml
pom.xml包含一些基本的Maven配置,比如配置Spark所依賴的Java 8。它會把所有的依賴封裝成一個大的jar包。我不是 Maven專家,所以我沒法把例子寫得更簡單、更流暢以便讓他們更受歡迎。這是pom文件地址,你可以看看我的配置:https://gist.github.com/luebke ... m-xmlHello.java
pom.xml文件定義mainClass為sparkexample.Hello,我們需要在src/main/java/sparkexample/
目錄下創建Hello.java文件。Dockerfile
最后我們來編寫Dockerfile文件,這個Dockerfile使用到了Java鏡像(java:oracle-java8), 并從安裝Maven開始做起。下一步它會安裝項目依賴。我們通過pom.xml來解析這些依賴,正如你所看到的,它允許Docker緩存這些依賴。下一 步,我們要編譯打包我們的應用,并啟動應用。如果我們重建應用時,pom.xml文件沒有任何修改,之前的步驟都被緩存下來了,直接到最后一步啟動應用。 這可以加快應用的重新構建速度。創建和運行
一旦這三個文件已經完成,那創建Docker鏡像就變得輕而易舉了。$ docker build -t giantswarm/sparkexample .
注意:首次啟動時會花費一些時間,因為它要安裝Maven并下載所有的依賴。之后再啟動就需要幾秒鐘,因為所有的東西都已經緩存了。
鏡像創建之后,用下面的命令創建容器:
docker run -d -p 4567:4567 giantswarm/sparkexample
用下面的命令訪問:
curl localhost:4567
hello from sparkjava.com
現在可以去修改源碼(返回你想返回的東西)并重新構建,這看起來是不是很棒?
原文地址:http://blog.giantswarm.io/gett ... ocker
來自:http://dockerone.com/article/62
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!