欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用 Docker 構(gòu)建簡單的 java 開發(fā)編譯環(huán)境的方法詳解

 更新時(shí)間:2020年11月12日 11:58:03   作者:Cocowool  
這篇文章主要介紹了利用 Docker 構(gòu)建簡單的 java 開發(fā)編譯環(huán)境的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

目前 Java 語言的版本很多,除了常用的 Java 8,有一些遺留項(xiàng)目可能使用了 Java 7,也可能有一些比較新的的項(xiàng)目使用了 Java 10 以上的版本。如果想切換自己本地的 Java 開發(fā)環(huán)境,折騰起來還是需要花費(fèi)一些時(shí)間的,并且日后在不同版本間切換每次都要折騰一次。

Docker 的出現(xiàn)讓我們維護(hù)不同版本的開發(fā)編譯環(huán)境變得簡單,如果你還不知道什么是 Docker 可以看看 Docker 入門介紹。我們可以采用兩種方式來構(gòu)建 java 的開發(fā)環(huán)境,一種是在容器內(nèi)編譯運(yùn)行,一種是在容器外編譯運(yùn)行,下面分別來看看具體如何操作。

準(zhǔn)備工作:首先確保已經(jīng)安裝了 Docker ,如果方便可以提前把 openjdk:8 的鏡像拉取下來,到時(shí)可以節(jié)省大家的時(shí)間。本文在 macOs 10.15.7 、Docker 19.03.8 的環(huán)境下驗(yàn)證通過。

容器內(nèi)編譯與運(yùn)行

本文以一個(gè)簡單的 Helloworld 程序?yàn)槔こ痰奈募夸浗Y(jié)構(gòu)及代碼如下。

$ ls -lh
total 24
-rw-r--r-- 1 shiqiang staff 60B 11 11 19:02 Dockerfile
-rw-r--r-- 1 shiqiang staff 123B 11 11 19:02 Helloworld.java

代碼的內(nèi)容。

public class Helloworld {
 public static void main(String args[]){
 System.out.println("Hello world.\n");
 }
}

做好以上準(zhǔn)備后,就可以編輯 Dockerfile 的內(nèi)容。

FROM openjdk:8 							#基于 openjdk:8 構(gòu)建鏡像
COPY . /usr/src/myapp 			 #將目錄內(nèi)的代碼拷貝到鏡像中 /usr/src/myapp 的位置
WORKDIR /usr/src/myapp 			#將 /usr/src/myapp 設(shè)為工作目錄
RUN javac Helloworld.java 	 #運(yùn)行編譯命令,編譯 Helloworld.java 程序
CMD ["java", "Helloworld"] #執(zhí)行編譯出來的 Helloworld

構(gòu)建鏡像文件。

$ docker build -t java_in_docker_env_8 . 
$ docker images # 使用 docker images 命令可以看到構(gòu)建出來的 java_in_docker_env_8 鏡像

運(yùn)行容器。

$ docker run -it --rm java_in_docker_env_8
Hello world.

$ ls -lh     
total 24
-rw-r--r-- 1 shiqiang staff 112B 11 12 10:53 Dockerfile
-rw-r--r-- 1 shiqiang staff 123B 11 12 10:49 Helloworld.java

可以看到程序的輸出,并且看到當(dāng)前目錄下并有沒編譯出來的結(jié)果。但是這種方式每次啟動(dòng)容器的時(shí)候都要進(jìn)行編譯,并且沒有辦法把編譯結(jié)果進(jìn)行分享,下一節(jié)的內(nèi)容介紹如何在容器外保存編譯結(jié)果。

容器外編譯與運(yùn)行

工作目錄和代碼準(zhǔn)備與上一節(jié)相同,Dockerfile 文件與上一節(jié)略有不同。

FROM openjdk:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp

構(gòu)建鏡像文件。

$ docker build -t java_env_8
$ docker images # 使用 docker images 命令可以看到構(gòu)建出來的 java_env_8 鏡像

編譯文件。

$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp java_env_8 javac Helloworld.java
$ ls -lh	# 可以看到編譯出來的結(jié)果
total 32
-rw-r--r-- 1 shiqiang staff 112B 11 12 10:53 Dockerfile
-rw-r--r-- 1 shiqiang staff 427B 11 12 11:09 Helloworld.class
-rw-r--r-- 1 shiqiang staff 123B 11 12 10:49 Helloworld.java

運(yùn)行程序。

$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp java_env_8 java Helloworld 
Hello world.

寫在最后

本文僅僅構(gòu)建了一個(gè)簡單的 java 開發(fā)環(huán)境,使用這種方式編譯運(yùn)行 java 程序的好處是無需在本地安裝 jdk ,在需要為多個(gè) jdk 版本編譯程序的時(shí)候更加方便。但是對于復(fù)雜的工程常常使用 maven 或者 graddle 進(jìn)行構(gòu)建,這種項(xiàng)目能否使用本文提到的方式來構(gòu)建呢,敬請期待本系列的下一篇文章,也歡迎大家關(guān)注公眾號獲得最新的文章推送。

參考資料Docker - Create a Java development environment

到此這篇關(guān)于利用 Docker 構(gòu)建簡單的 java 開發(fā)編譯環(huán)境的文章就介紹到這了,更多相關(guān)docker構(gòu)建java開發(fā)編譯環(huán)境內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker?制作tomcat鏡像并部署項(xiàng)目的步驟

    Docker?制作tomcat鏡像并部署項(xiàng)目的步驟

    這篇文章主要介紹了Docker?制作tomcat鏡像并部署項(xiàng)目?,講解如何制作自己的tomcat鏡像,并使用tomcat部署項(xiàng)目,需要的朋友可以參考下
    2022-10-10
  • 5分鐘教你實(shí)現(xiàn)用docker搭建Redis集群模式和哨兵模式

    5分鐘教你實(shí)現(xiàn)用docker搭建Redis集群模式和哨兵模式

    本文主要介紹了5分鐘實(shí)現(xiàn)用docker搭建Redis集群模式和哨兵模式,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • docker環(huán)境搭建JMeter+Grafana+influxdb可視化性能監(jiān)控平臺(tái)的教程

    docker環(huán)境搭建JMeter+Grafana+influxdb可視化性能監(jiān)控平臺(tái)的教程

    這篇文章主要介紹了docker下搭建JMeter+Grafana+influxdb可視化性能監(jiān)控平臺(tái),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • 給docker創(chuàng)建的elasticsearch容器添加密碼簡單步驟

    給docker創(chuàng)建的elasticsearch容器添加密碼簡單步驟

    在使用Elasticsearch(ES)Docker容器時(shí),有時(shí)需要設(shè)置密碼來保護(hù)數(shù)據(jù)的安全性,這篇文章主要給大家介紹了關(guān)于給docker創(chuàng)建的elasticsearch容器添加密碼的簡單步驟,需要的朋友可以參考下
    2024-02-02
  • 修改Docker鏡像默認(rèn)存儲(chǔ)位置的方法(解決方法)

    修改Docker鏡像默認(rèn)存儲(chǔ)位置的方法(解決方法)

    這篇文章主要介紹了修改Docker鏡像默認(rèn)存儲(chǔ)位置的方法,如果上面運(yùn)行 Docker 服務(wù),經(jīng)過長時(shí)間的使用,會(huì)使原本就比較大的分區(qū)越來越不夠用。如何更好地的處理這個(gè)問題呢,本文給出解決方案,需要的朋友一起看看吧
    2021-04-04
  • Ubuntu下安裝Docker教程

    Ubuntu下安裝Docker教程

    Docker是一個(gè)開源軟件,它可以把一個(gè)Linux應(yīng)用和它所依賴的一切(比如配置文件)都封裝到一個(gè)容器。然而,Docker與虛擬機(jī)不同,它使用了沙箱機(jī)制,Docker容器不運(yùn)行操作系統(tǒng),它共享主機(jī)上的操作系統(tǒng)。下面我將在Ubuntu 15.10安裝和使用Docker。
    2016-10-10
  • harbor修改配置文件后重啟操作

    harbor修改配置文件后重啟操作

    這篇文章主要介紹了harbor修改配置文件后重啟操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Docker常見命令整理匯總(包括鏡像命令、容器命令)

    Docker常見命令整理匯總(包括鏡像命令、容器命令)

    這篇文章主要給大家介紹了關(guān)于Docker常見命令整理匯總的相關(guān)資料,包括鏡像命令、容器命令等等,通過一個(gè)個(gè)示例來加深各位看官對docker相關(guān)命令的理解以及記憶,需要的朋友可以參考下
    2022-07-07
  • docker鏡像的拉取登陸上傳及保存等相關(guān)使用命令

    docker鏡像的拉取登陸上傳及保存等相關(guān)使用命令

    這篇文章主要為大家介紹了docker鏡像的拉取登陸上傳及保存等相關(guān)使用命令,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • Docker創(chuàng)建一個(gè)Nginx服務(wù)器的方法步驟

    Docker創(chuàng)建一個(gè)Nginx服務(wù)器的方法步驟

    使用Dokcer可以很好的對鏡像進(jìn)行管理,創(chuàng)建和使用容器。這篇文章主要介紹了Docker創(chuàng)建一個(gè)Nginx服務(wù)器的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01

最新評論