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

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

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

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

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

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

容器內編譯與運行

本文以一個簡單的 Helloworld 程序為例,工程的文件目錄結構及代碼如下。

$ 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

代碼的內容。

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

做好以上準備后,就可以編輯 Dockerfile 的內容。

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

構建鏡像文件。

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

運行容器。

$ 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

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

容器外編譯與運行

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

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

構建鏡像文件。

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

編譯文件。

$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp java_env_8 javac Helloworld.java
$ ls -lh	# 可以看到編譯出來的結果
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

運行程序。

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

寫在最后

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

參考資料Docker - Create a Java development environment

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

相關文章

  • Docker?制作tomcat鏡像并部署項目的步驟

    Docker?制作tomcat鏡像并部署項目的步驟

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

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

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

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

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

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

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

    修改Docker鏡像默認存儲位置的方法(解決方法)

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

    Ubuntu下安裝Docker教程

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

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

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

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

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

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

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

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

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

最新評論