如何使用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
如果有讀者等不及了,可以克隆這個repo:
下面我們會詳細解釋這三個檔案的結構,你可以此視訊來快速瞭解。(讀者可以檢視原文中的視訊,看完視訊基本可以瞭解怎麼做)
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
現在可以去修改原始碼(返回你想返回的東西)並重新構建,這看起來是不是很棒?
相關文章
- Docker極簡入門:使用Docker執行Java程式DockerJava
- 使用容器Docker進行開發Docker
- docker和docker compose安裝使用、入門進階案例Docker
- win 環境使用easyswoole利用docker進行開發Docker
- JAVA快取-Redis入門級使用Java快取Redis
- Docker使用入門Docker
- 使用 TypeScript + React + Redux 進行專案開發(入門篇,附原始碼)TypeScriptReactRedux原始碼
- 在 WSL Ubuntu 上使用 .NET 進行跨平臺開發新手入門Ubuntu
- PyCharm入門級使用指南,Python開發必備!PyCharmPython
- 如何使用Visual Studio Code遠端容器(Remote Container)功能在Docker內部進行開發 - Docker BlogREMAIDocker
- 【URLOS開發入門】docker官方系統映象——Alpine入門教程Docker
- Jaeger開發入門(java版)Java
- 如何在Windows上使用Python進行開發WindowsPython
- Java註解(入門級)Java
- 使用Devstack進行開發dev
- 使用 Devstack 進行開發dev
- 如何進行Vue開發Vue
- 使用 Python 進行資料分析:入門指南Python
- 如何使用 IDEA 建立 Java 入門應用IdeaJava
- Python適合進行桌面軟體開發嗎?Python入門分享!Python
- Java使用Scanner類進行控制檯輸入Java
- 如何在 Linux/Windows/MacOS 上使用 .NET 進行開發LinuxWindowsMac
- WPF 使用 Silk.NET 進行 DirectX 渲染入門
- 使用JMeter進行負載測試快速入門JMeter負載
- 使用eclipse 進行 Cesium 開發Eclipse
- java入門:安裝開發環境Java開發環境
- 如何進行Flutter混合開發Flutter
- 如何大資料開發入門大資料
- 使用Java後端對Angular應用進行Docker化 -BhargavJava後端AngularDocker
- Java多執行緒 -- wait() 和 notify() 使用入門Java執行緒AI
- Docker容器使用 (入門到精通)Docker
- 入門級前端開發可能需要的安利列表前端
- SQL稽核 | 如何使用 SQLE 進行開發階段 SQL稽核SQL
- 如何使用PL/SQL進行分級查詢WPSQL
- Java 開發者的 Python 快速入門指南JavaPython
- docker入門Docker
- Minikube:使用 Kubernetes 進行本地開發
- VSCode使用LSP進行Swift開發VSCodeSwift
- 使用 .NET 進行遊戲開發遊戲開發