天天看點

Java工程師如何在Docker上進行開發

java工程師如何在docker上進行開發?本文能讓你以最小的日常開支和預備知識就可以把docker和java結合使用。

Java工程師如何在Docker上進行開發

現在有很多的java web架構,挑選一個非常小的架構,選擇spark吧!它是一款基于java-8的微型sinatra架構。如果你去閱讀spark的說明文檔,會了解它是用maven作為其建構工具。

Java工程師如何在Docker上進行開發

在本示例裡,會利用maven和docker的分層檔案系統(unionfs),從零開始安裝一切。與此同時,當重新編譯變動的内容時,也需要一些時間。

是以,你需要的預備知識是:無需java,無需maven,隻需docker。

本例中,你必須得添加以下3個檔案:

maven配置:<code>pom.xml</code>

java檔案:<code>hello.java</code>

<code>dockerfile</code>

如果覺得篇幅過長,可以直接[克隆如下repo]:

pom.xml

hello.java

<code>pom.xml</code>檔案定義了一個類名叫:<code>sparkexample.hello</code>的 main class(主類)。在子路徑<code>src/main/java/sparkexample/</code>下建立hello.java檔案。

正如你看到的,這是最新的java代碼:靜态導入和lambda表達式,使該例子非常緊湊。類包含一個main method(主要方法),響應root請求("/")。像helloworld一樣普通,響應隻是簡單的字元串。

dockerfile

最後一個也是,最重要的一個檔案:<code>dockerfile</code>

實際操作過程中會發現,如果我們不改變pom.xml而想重新編譯app,之前的步驟已被緩存,隻運作最後的步驟,這将使重編譯速度更快。這點docker的優勢非常明顯!

有以上3個檔案後,建立docker鏡像就變得非常簡單:

注意:第一次建構時,需要等一會。需要先下載下傳安裝maven,還會下載下傳所有項目依賴項。以後每次編譯啟動隻需要幾秒鐘就可以了,不要問我為什麼為什麼隻需幾秒,因為有緩存。

鏡像建立好後,啟動容器:

測試:

建立鏡像就這麼簡單!現在,可以去修改源代碼,再重新編譯,是不是很簡單,很棒呢?!