使用Docker進行Java開發

jopen 9年前發布 | 55K 次閱讀 Docker

【編者的話】這是一篇入門級的學習教程,推薦Java開發者閱讀,作者通過一個簡單的例子演示了如何在Docker中進行Java開發。不需要Maven、不需要JDK,你只需要給你的小伙伴一個Dockerfile,剩下的事情交給Docker去完成吧。

這周,AnnaStephanTimo在 慕尼黑的W-Jax開了一個關于企業技術(特別針對Java)的會議。沒想到居然有這么多的人對Docker感興趣,但問題是怎么在Docker上進行 Java開發呢?我個人比較喜歡短小的示例,它可以通過包含幾個小文件的框架幫助你了解某個技術。不幸的是,這在Java的世界很難實現,因為大多數的示 例都需要某個IDE以及適當的對Web框架有所了解。在這篇文章中,我將嘗試使用短小的示例,以幫助你快速學習如何在Docker中進行Java開發。

準備工作

現在有非常多的Java Web框架,但我這里并不打算使用它們。我只想要的是一個小的框架所以我選擇了Spark,它是一個基于Java 8的極小的框架。Spark使用Maven作為構建工具。

794f1788f9e297d66f3bb1bd7cc3037e.png

源代碼和配置文件

在這個例子中你要增加三個文件:

  • 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-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
    現在可以去修改源碼(返回你想返回的東西)并重新構建,這看起來是不是很棒?

    原文地址:http://blog.giantswarm.io/gett ... ocker
    來自:http://dockerone.com/article/62

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!