如何使用Docker進行Java入門級開發

dockerone發表於2015-01-31

【編者的話】這是一篇入門級的學習教程,推薦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作為構建工具。

Java_Development_Docker.png

原始碼和配置檔案

在這個例子中你要增加三個檔案:

  • Maven的配置檔案: pom.xml
  • 一個Java類:Hello.java
  • 一個Dockerfile

如果有讀者等不及了,可以克隆這個repo:

https://github.com/giantswarm/sparkexample

下面我們會詳細解釋這三個檔案的結構,你可以此視訊來快速瞭解。(讀者可以檢視原文中的視訊,看完視訊基本可以瞭解怎麼做)

pom.xml

pom.xml包含一些基本的Maven配置,比如配置Spark所依賴的Java 8。它會把所有的依賴封裝成一個大的jar包。我不是 Maven專家,所以我沒法把例子寫得更簡單、更流暢以便讓他們更受歡迎。這是pom檔案地址,你可以看看我的配置:https://gist.github.com/luebke … m-xml

Hello.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

現在可以去修改原始碼(返回你想返回的東西)並重新構建,這看起來是不是很棒?

相關文章