<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          華為云鯤鵬服務(wù)器部署Java踩坑記

          共 1752字,需瀏覽 4分鐘

           ·

          2022-01-22 05:11

          f05bbed6c8191a1595ac580b32c250fa.webp

          之前跟華為云的技術(shù)人員溝通,他們說在鯤鵬服務(wù)器上構(gòu)建部署對微軟的 dotNET 支持不是很好,建議使用 Java ,我們程序現(xiàn)在是混合模式 dotNET 和 Java 都有。讓我沒想到的是 dotNET 的構(gòu)建部署很順利,反倒是 Java 的部署遇到了些問題。

          現(xiàn)象是 CCE 中的工作負載提示異常,應(yīng)用不能正常訪問,查看了容器日志,如下圖:

          54c95ea5c4752d43670c8497e024d9cc.webp

          最終查出的原因是基礎(chǔ)鏡像使用錯誤,因之前跟華為技術(shù)人員溝通得知鯤鵬服務(wù)器只支持 openjdk ,并且鯤鵬服務(wù)器是 arm 芯片,所以就找到了 arm64v8/openjdk 的基礎(chǔ)鏡像,?arm64v8 下只有一個 openjdk 的鏡像,這個鏡像中的 Java version 是 17 ,我們使用的 Java 的版本是 8 ,就導(dǎo)致了不兼容。

          正確在華為云鯤鵬服務(wù)器構(gòu)建一個 Java 的 Spring Boot 項目的步驟如下:

          1、構(gòu)建一個基礎(chǔ)鏡像推送到華為云的私有鏡像倉庫,ssh 進入任意一臺 ECS 服務(wù)器,執(zhí)行下面命令:


          docker?pull?adoptopenjdk/openjdk8
          ##?登鏡像倉庫
          docker?login?-u?cn-north-
          4@89VUVGA2PF5XSHSM6YB4?-p?40d6f47154ef844717e9acc4cc3240e2dfeb900b149058e60a3f6fa598fb1?swr.cn-north-5.myhuaweicloud.com
          docker?tag?adoptopenjdk/openjdk8??swr.cn-north-
          5.myhuaweicloud.com/xxx/openjdk:latest
          docker?push?swr.cn-north-
          5.myhuaweicloud.com/xxx/openjdk:latest

          注意:docker pull 的鏡像為 adoptopenjdk/openjdk8 ,這是 Java 8 的 openjdk 版本。值得一提的是這個鏡像并非是 arm 的鏡像,但依然可以用,只需要在創(chuàng)建構(gòu)建任務(wù)的時候,指定是鯤鵬服務(wù)器就可以

          1ca77e9ed4bf835e8c8155f2e73513d7.webp

          2、創(chuàng)建一個 Spring Boot 項目,根目錄下創(chuàng)建 Dcokerfile 文件,內(nèi)容如下:

          FROM?swr.cn-north-5.myhuaweicloud.com/xxx/openjdk:latest

          ENV?PARAMS=""

          ENV?TZ=PRC

          ADD?Java-Test-SNAPSHOT.jar?/Java-Test-SNAPSHOT.jar

          ENTRYPOINT?["sh","-c","java?-jar?/Java-Test-SNAPSHOT.jar??$PARAMS"]

          3、創(chuàng)建構(gòu)建任務(wù),這一步驟可以參考《華為云服務(wù)器初探二(完結(jié))》中的描述;

          4、在 CCE 中創(chuàng)建無狀態(tài)負載,需要手動添加環(huán)境變量 PARAMS ,如下圖:

          e1cc47e01476f09203e1bb2187ed8ad8.webp

          如果直接使用 docker run 命令創(chuàng)建容器,命令如下:

          docker?run?-d?-p?9214:9214?-e?PARAMS='--spring.profiles.active=dev?-server.port=9214'?--name?java-test??swr.cn-north-5.myhuaweicloud.com/xxx/openjdk:latest

          可以看到上面 PARAMS 后面的值是加了單引號的,這個參數(shù)值在 CCE 的環(huán)境變量設(shè)置的時候需要去掉單引號,否則容器也不能正常啟動

          5、工作負載搞定,剩下的構(gòu)建、部署、流水線和前面文章中的類似。

          最后的一點思考:

          像我遇到的這種問題,為什么在官網(wǎng)文檔中沒有提及呢?我覺得一個重要的原因是,寫文檔的人存在知識的詛咒,會認為很多基礎(chǔ)知識大家應(yīng)該都會。出發(fā)點是自己的角度,而不是從用戶的角度。

          我這篇文檔也是一樣,因為是踩坑記錄,所以已經(jīng)假設(shè)你在使用華為云鯤鵬服務(wù)器,并且能較熟練操作,否則可能也是一頭霧水。

          但如果是寫一些基礎(chǔ)文檔或教程,還是要站在讀者(用戶)的角度去想,把他們當(dāng)成是小白,寫出的東西用處會更大。

          相關(guān)閱讀:

          華為云服務(wù)器部署初探二(完結(jié))

          華為云服務(wù)器部署初探

          瀏覽 247
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色播基地| 欧美成人精品A A A | 亚洲AAA黄片 | 国产免费色网站视频 | 91AV免费在线观看 |