国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何在 容器中 優(yōu)雅的 運行 java 應(yīng)用

這篇具有很好參考價值的文章主要介紹了如何在 容器中 優(yōu)雅的 運行 java 應(yīng)用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

當(dāng)需要運行Java應(yīng)用時,不管在機(jī)器上還是容器里,一般的做法是運行 java 命令。
java -jar /opt/app.jar 即可
如果是多多jar 文件的只需用到java -cp lib/* com.example.Main 定類路徑(classpath)和入口 Java 類即可。
但 在構(gòu)建容器鏡像時,一般使用 Dockerfile 的 ENTRYPOINT 來指定運行的 java 命令。ENTRYPOINT [ "java", "-jar", "/opt/app.jar" ]

直接使用 java 命令的做法,在容器運行時并不靈活。如果想使用 -D 參數(shù)來添加新的系統(tǒng)屬性,就必須要修改 Dockerfile 中的ENTRYPOINT 定義。這就意味要創(chuàng)建新的鏡像,使用起來非常的不方便。

使用 run-java.sh 在容器中 啟動Java

腳本地址 run-java.sh

基本用法 (readme.md)

第一類與Java應(yīng)用相關(guān)。

JAVA_APP_DIR 設(shè)置應(yīng)用文件的根目錄,默認(rèn)為 run-java.sh 所在的目錄。

JAVA_APP_NAME 設(shè)置應(yīng)用進(jìn)程的名稱。

JAVA_MAJOR_VERSION 設(shè)置 JVM 的版本號。默認(rèn)從 java -version 命令的輸出中解析。

第二類與 Java 應(yīng)用的 classpath 相關(guān)。

JAVA_CLASSPATH 設(shè)置完整的 classpath。

JAVA_LIB_DIR 設(shè)置作為庫的 JAR 文件的目錄。默認(rèn)為 JAVA_APP_DIR 的值。

JAVA_APP_JAR 設(shè)置可執(zhí)行的 JAR 文件的路徑。

JAVA_MAIN_CLASS 設(shè)置入口類的名稱。

第三類與Java運行的參數(shù)相關(guān)。

JAVA_OPTIONS 設(shè)置額外的參數(shù)。

第四類與運行的內(nèi)存和 CPU 相關(guān)。

JAVA_INIT_MEM_RATIO 設(shè)置起始的 heap 尺寸占全部內(nèi)存的比例。轉(zhuǎn)換成參數(shù) -Xms。值 20 表示 20%。

JAVA_MAX_MEM_RATIO 設(shè)置最大的 heap 尺寸占全部內(nèi)存的比例。轉(zhuǎn)換成參數(shù) -Xmx。值 50 表示 50%。

JAVA_MAX_CORE 設(shè)置最大的 CPU 核數(shù)。

第五類與調(diào)試相關(guān)。

JAVA_DEBUG 啟用遠(yuǎn)程調(diào)試。

JAVA_DEBUG_SUSPEND 以暫停模式啟用遠(yuǎn)程調(diào)試。

JAVA_DEBUG_PORT 設(shè)置遠(yuǎn)程調(diào)試的端口。默認(rèn)為 5005。

第六類與 HTTP 代理相關(guān)。

HTTP_PROXY 設(shè)置 HTTP 代理。轉(zhuǎn)換成 Java 的系統(tǒng)屬性 http.proxyHost 和 http.proxyPort。

HTTPS_PROXY 設(shè)置 HTTPS 代理。轉(zhuǎn)換成 Java 的系統(tǒng)屬性 https.proxyHost 和 https.proxyPort。

NO_PROXY 設(shè)置不使用代理的主機(jī)名。轉(zhuǎn)換成 Java 的系統(tǒng)屬性 http.nonProxyHosts。

最后一類與應(yīng)用診斷相關(guān)。

JAVA_DIAGNOSTICS 啟用輸出額外的診斷信息。

舉例

就拿 國內(nèi) 比較火的 開源BI dataease 舉例
Dockerfile

FROM registry.cn-qingdao.aliyuncs.com/dataease/fabric8-java-alpine-openjdk8-jre:edge-chromium-11

ARG IMAGE_TAG

RUN mkdir -p /opt/apps /opt/dataease/data/feature/full /opt/dataease/drivers

ADD mapFiles/* /opt/dataease/data/feature/full/

ADD drivers/* /opt/dataease/drivers/

ADD backend/target/backend-$IMAGE_TAG.jar /opt/apps

ENV JAVA_APP_JAR=/opt/apps/backend-$IMAGE_TAG.jar

ENV AB_OFF=true

ENV JAVA_OPTIONS=-Dfile.encoding=utf-8

HEALTHCHECK --interval=15s --timeout=5s --retries=20 --start-period=30s CMD curl -f 127.0.0.1:8081

CMD ["/deployments/run-java.sh"]

定義環(huán)境變量

JAVA_APP_DIR=/deployments
JAVA_MAJOR_VERSION=11
JAVA_OPTIONS=-Dfile.encoding=utf-8 
JAVA_APP_JAR=/opt/apps/backend-1.18.9.jar

容器內(nèi)啟動命令為文章來源地址http://www.zghlxwxcb.cn/news/detail-616822.html

java -Dfile.encoding=utf-8
-Xmx2048m
-XX:MaxPermSize=1024m
-Xss5m
-XX:+UseParallelGC
-XX:GCTimeRatio=4
-XX:AdaptiveSizePolicyWeight=90
-XX:MinHeapFreeRatio=20
-XX:MaxHeapFreeRatio=40
-XX:+ExitOnOutOfMemoryError
-cp . -jar /opt/apps/backend-1.18.9.jar

到了這里,關(guān)于如何在 容器中 優(yōu)雅的 運行 java 應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 云原生環(huán)境下JAVA應(yīng)用容器JVM內(nèi)存如何配置?—— 筑夢之路

    云原生環(huán)境下JAVA應(yīng)用容器JVM內(nèi)存如何配置?—— 筑夢之路

    Docker環(huán)境下的JVM參數(shù)非定值配置 —— 筑夢之路_docker jvm設(shè)置-CSDN博客 之前簡單地記錄過一篇,這里在之前的基礎(chǔ)上更加細(xì)化一下。 使用Java開發(fā)且設(shè)置的JVM堆空間過小時,程序會出現(xiàn)系統(tǒng)內(nèi)存不足OOM(Out of Memory)的問題。事件中心的OOM事件是指系統(tǒng)內(nèi)存不足時,觸發(fā)了Linux的

    2024年02月06日
    瀏覽(23)
  • Gin 筆記(06)— 設(shè)置不同啟動模式、優(yōu)雅啟動和關(guān)閉、運行多個不同端口的服務(wù)進(jìn)程

    SetMode() 這個函數(shù)來設(shè)置運行的模式,有三種模式可以設(shè)置,分別為 gin.ReleaseMode gin.TestMode gin.DebugMode 正式發(fā)布時應(yīng)該設(shè)置為發(fā)布模式。 運行結(jié)果: 我們可以使用 fvbock/endless 來替換默認(rèn)的 ListenAndServe. 可以參考 #296 有更多的細(xì)節(jié)。 其它可選的方案 manners: A polite Go HTTP server th

    2024年02月06日
    瀏覽(64)
  • docker-java 用Java操作docker創(chuàng)建容器并運行運行容器

    參考上一篇文章:Docker設(shè)置開啟遠(yuǎn)程訪問 Apache HttpClient 5介紹: This transport is based on Apache HttpClient library version 5, which has a great flexibility and allows us to implement all Docker-specific features and protocols required, without having to use internal APIs or anything. It has everything to become the default transport of

    2023年04月09日
    瀏覽(29)
  • Redis詳解,包括安裝命令,應(yīng)用場景,優(yōu)缺點,案列分析,各個開發(fā)語言如何應(yīng)用

    Redis 是一個基于內(nèi)存的開源數(shù)據(jù)庫系統(tǒng),被廣泛應(yīng)用于 Web 應(yīng)用、消息隊列、緩存、實時統(tǒng)計等領(lǐng)域。下面是 Redis 的詳解,包括安裝命令、應(yīng)用場景和優(yōu)缺點,以及案列分析和各個開發(fā)語言如何應(yīng)用。此外,還提供了一些具體代碼示例。 Redis 的安裝命令因操作系統(tǒng)而異。以下

    2024年02月15日
    瀏覽(20)
  • 快速上手Spring Boot整合,開發(fā)出優(yōu)雅可靠的Web應(yīng)用!

    快速上手Spring Boot整合,開發(fā)出優(yōu)雅可靠的Web應(yīng)用!

    SpringBoot 是由 Pivotal 團(tuán)隊提供的全新框架,其設(shè)計目的是用來 簡化 Spring 應(yīng)用的 初始搭建 以及 開發(fā)過程 。 使用了 Spring 框架后已經(jīng)簡化了我們的開發(fā)。而 SpringBoot 又是對 Spring 開發(fā)進(jìn)行簡化的,可想而知 SpringBoot 使用的簡單及廣泛性。既然 SpringBoot 是用來簡化 Spring 開發(fā)的,

    2024年02月21日
    瀏覽(23)
  • 如何使用Java進(jìn)行桌面應(yīng)用的開發(fā)?

    使用Java進(jìn)行桌面應(yīng)用的開發(fā)可以借助JavaFX或Swing框架。下面為你提供一些基本的步驟: 安裝Java開發(fā)工具包(JDK):首先,確保你已經(jīng)安裝了Java開發(fā)工具包(JDK),并正確配置了環(huán)境變量。 選擇GUI框架:Java提供了兩個主要的桌面GUI框架:JavaFX和Swing。JavaFX是Oracle推薦的最新的

    2024年02月09日
    瀏覽(26)
  • docker 容器如何查看正在運行容器的端口映射

    1、查看docker容器的版本 2、查看正在運行的容器 3、查看容器的端口映射 總結(jié):到此就完成了查看正在運行容器的端口映射.

    2024年02月12日
    瀏覽(20)
  • Java如何優(yōu)雅的進(jìn)行判空

    Java如何優(yōu)雅的進(jìn)行判空

    實際項目中我們會有很多地方需要判空校驗,如果不做判空校驗則可能產(chǎn)生NullPointerException異常。 針對異常的處理我們在上一篇有提及: 先來看一下實際項目中一些判空方式 通常我們判斷一個對象是否為Null,可以使用java.util中的Objects.nonNull(obj)、hutool中的ObjectUtil或者直接

    2024年02月09日
    瀏覽(92)
  • 如何優(yōu)雅地使用Low Code提高開發(fā)效率

    如何優(yōu)雅地使用Low Code提高開發(fā)效率

    2023年,低代碼熱度有,但是在企業(yè)內(nèi)部核心場景的落地比例不高,推進(jìn)進(jìn)展也沒有想象中快。就算是這樣,低代碼賽道也在“暗流涌動”。 數(shù)字化趨勢下,很多企業(yè)想要以數(shù)字化的手段進(jìn)行降本增效 。很多企業(yè)希望以低代碼的模式,搭建符合自身業(yè)務(wù)需求的應(yīng)用。 現(xiàn)在國內(nèi)

    2024年02月09日
    瀏覽(20)
  • Docker(鏡像、容器、倉庫)工具安裝使用命令行選項及構(gòu)建、共享和運行容器化應(yīng)用程序

    Docker(鏡像、容器、倉庫)工具安裝使用命令行選項及構(gòu)建、共享和運行容器化應(yīng)用程序

    ??個人主頁:@小沈YO. ??小編介紹:歡迎來到我的亂七八糟小星球?? ??本章內(nèi)容:Docker工具安裝使用、命令行選項及構(gòu)建、共享和運行容器化應(yīng)用程序時的主要步驟 記得 評論?? +點贊?? +收藏?? +關(guān)注??哦~ 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 以下是在常

    2024年02月05日
    瀏覽(43)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包