自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用Docker 進(jìn)行Java 開(kāi)發(fā)

云計(jì)算
這是一篇入門(mén)級(jí)的學(xué)習(xí)教程,推薦Java開(kāi)發(fā)者閱讀,作者通過(guò)一個(gè)簡(jiǎn)單的例子演示了如何在Docker中進(jìn)行Java開(kāi)發(fā)。不需要Maven、不需要JDK,你只需要給你的小伙伴一個(gè)Dockerfile,剩下的事情交給Docker去完成吧。

這周,我和Anna、Stephan、Timo在慕尼黑的W-Jax開(kāi)了一個(gè)關(guān)于企業(yè)技術(shù)(特別針對(duì)Java)的會(huì)議。沒(méi)想到居然有這么多的人對(duì)Docker感興趣,但問(wèn)題是怎么在Docker上進(jìn)行Java開(kāi)發(fā)呢?我個(gè)人比較喜歡短小的示例,它可以通過(guò)包含幾個(gè)小文件的框架幫助你了解某個(gè)技術(shù)。不幸的是,這在Java的世界很難實(shí)現(xiàn),因?yàn)榇蠖鄶?shù)的示例都需要某個(gè)IDE以及適當(dāng)?shù)膶?duì)Web框架有所了解。在這篇文章中,我將嘗試使用短小的示例,以幫助你快速學(xué)習(xí)如何在Docker中進(jìn)行Java開(kāi)發(fā)。

準(zhǔn)備工作

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

源代碼和配置文件

在這個(gè)例子中你要增加三個(gè)文件:

  • Maven的配置文件: pom.xml
  • 一個(gè)Java類(lèi):Hello.java
  • 一個(gè)Dockerfile

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

https://github.com/giantswarm/sparkexample

下面我們會(huì)詳細(xì)解釋這三個(gè)文件的結(jié)構(gòu),你可以此視頻來(lái)快速了解。

pom.xml

pom.xml包含一些基本的Maven配置,比如配置Spark所依賴(lài)的Java 8。它會(huì)把所有的依賴(lài)封裝成一個(gè)大的jar包。我不是 Maven專(zhuān)家,所以我沒(méi)法把例子寫(xiě)得更簡(jiǎn)單、更流暢以便讓他們更受歡迎。這是pom文件地址,你可以看看我的配置:https://gist.github.com/luebke … m-xml

Hello.java

pom.xml文件定義mainClass為sparkexample.Hello,我們需要在src/main/java/sparkexample/目錄下創(chuàng)建Hello.java文件。

Dockerfile

***我們來(lái)編寫(xiě)Dockerfile文件,這個(gè)Dockerfile使用到了Java鏡像(java:oracle-java8),并從安裝Maven開(kāi)始做起。下一步它會(huì)安裝項(xiàng)目依賴(lài)。我們通過(guò)pom.xml來(lái)解析這些依賴(lài),正如你所看到的,它允許Docker緩存這些依賴(lài)。下一步,我們要編譯打包我們的應(yīng)用,并啟動(dòng)應(yīng)用。如果我們重建應(yīng)用時(shí),pom.xml文件沒(méi)有任何修改,之前的步驟都被緩存下來(lái)了,直接到***一步啟動(dòng)應(yīng)用。這可以加快應(yīng)用的重新構(gòu)建速度。

創(chuàng)建和運(yùn)行

一旦這三個(gè)文件已經(jīng)完成,那創(chuàng)建Docker鏡像就變得輕而易舉了。

  1. $ docker build -t giantswarm/sparkexample . 

注意:***啟動(dòng)時(shí)會(huì)花費(fèi)一些時(shí)間,因?yàn)樗惭bMaven并下載所有的依賴(lài)。之后再啟動(dòng)就需要幾秒鐘,因?yàn)樗械臇|西都已經(jīng)緩存了。

鏡像創(chuàng)建之后,用下面的命令創(chuàng)建容器:

  1. docker run -d -p 4567:4567 giantswarm/sparkexample 

用下面的命令訪問(wèn):

  1. curl localhost:4567 hello from sparkjava.com 

現(xiàn)在可以去修改源碼(返回你想返回的東西)并重新構(gòu)建,這看起來(lái)是不是很棒?

[[125149]]

本文出自:http://dockerone.com/article/62#rd?sukey=fd39034cdd3ad74304c68ed888d30aaf42cfd6288b062f04f664917e2a7dbed354fc4c8483ff0a91a02e8f9eec8eea95

責(zé)任編輯:Ophira 來(lái)源: dockerone
相關(guān)推薦

2022-05-06 19:53:33

Java serve

2010-07-30 13:52:17

Flex組件

2015-07-16 15:20:58

DockerDjango

2010-02-03 14:15:18

Python 開(kāi)發(fā)

2018-05-04 15:27:22

Spring Boo Web開(kāi)發(fā)

2019-09-29 09:40:20

LinuxWindowsMacOS

2022-02-14 23:17:16

Gitlab嵌入式工具

2016-09-08 16:04:59

JavaDocker前端

2010-11-17 12:59:52

2015-07-28 11:10:22

Docker容器容器編排

2024-03-28 14:40:55

2020-04-29 13:57:39

物聯(lián)網(wǎng)智能停車(chē)IOT

2024-07-08 08:38:37

Python游戲開(kāi)發(fā)

2021-03-05 00:06:12

Docker容器內(nèi)存

2023-08-24 08:00:00

開(kāi)發(fā)Java可觀察性

2009-08-07 10:53:59

Visual C#Excel

2023-08-11 18:16:08

DevOps開(kāi)發(fā)

2021-10-26 21:50:10

Rust嵌入式開(kāi)發(fā)

2022-05-26 08:38:10

Docker鏡像運(yùn)維

2023-08-11 07:59:15

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)