使用DevCloud華為云鯤鵬ECS上自動部署鳳凰商城示例程序

      網友投稿 1904 2022-05-29

      華為云軟件開發平臺(DevCloud)是一站式云端DevOps平臺,開發者使用DevCloud可以快速體驗全流程的DevOps,輕松開啟云端開發之旅。同時,DevCloud集成有鯤鵬開發套件的編譯器,支持開發者將軟件自動部署到華為云鯤鵬ECS或容器等云服務上。本文說明使用DevCloud在華為云鯤鵬ECS上自動部署DevOps全流程樣例項目——鳳凰商城示例程序所需的配置修改,作為鯤鵬移植的應用參考。

      實踐準備工作

      本次實踐假設DevCloud在已配置有鯤鵬執行機的“北京四”區域,對于未配置鯤鵬執行機的區域,可能需要客戶自行配置執行機,配置過程詳見后續說明。

      首先,按照HE2E DevOps實踐的實踐準備工作完成項目創建,本次實踐截圖中的項目名稱為“phoenix-test”。

      失敗的構建嘗試

      按照官方文檔步驟六:構建應用,登錄容器鏡像服務控制臺獲取SWR服務器地址,并且創建組織(或復制已創建組織的名稱)。

      在編譯構建頁簽下,在構建任務列表中單擊構建任務“phoenix-sample-ci”最右側“操作”那一列3個小點的圖標,在快捷菜單中選擇“復制”,然后在復制任務的基本信息頁簽中修改任務名稱為“phoenix-sample-ci-kunpeng”,修改構建環境主機類型為“鯤鵬(ARM)服務器”,單擊“復制并執行”,在接下來的對話框中修改構建配置參數dockerServer和dockerOrg為合適的值。

      然而,只進行構建任務配置的修改,會出現“制作Docker鏡像失敗”的錯誤。

      從全量日志的第66行可以看出在構建鏡像時出現了“exec format error”錯誤,其原因一般是基礎鏡像的指令集與執行機不一致。

      ... 64 [2021/06/22 15:23:17.707] Step 4/7 : RUN pip install -i https://repo.huaweicloud.com/repository/pypi/simple -r requirements.txt 65 [2021/06/22 15:23:17.954] ---> Running in e8bc2ac602fd 66 [2021/06/22 15:23:18.245] ·[91mstandard_init_linux.go:219: exec user process caused "exec format error" 67 [2021/06/22 15:23:18.614] The command '/bin/sh -c pip install -i https://repo.huaweicloud.com/repository/pypi/simple -r requirements.txt' returned a non-zero code: 1 68 [2021/06/22 15:23:18.645] [ERROR] [制作Vote鏡像并推送到SWR倉庫:制作鏡像并推送到SWR倉庫] : 錯誤信息: DEV.CB.0210043, 制作Docker鏡像失敗。 69 [2021/06/22 15:23:18.753] [ERROR] [制作Vote鏡像并推送到SWR倉庫:制作鏡像并推送到SWR倉庫] : 該步驟執行失敗。 70 [2021/06/22 15:23:18.757] [ERROR] : 該步驟執行失敗,錯誤信息:DEV.CB.0210043, 制作Docker鏡像失敗。 71 [2021/06/22 15:23:24.594] [INFO] : [JobStatusPlugin] onCompleted: j_hWvUWwku #1 72 [2021/06/22 15:23:24.595] [INFO] : [JobStatusPlugin] onCompleted end: j_hWvUWwku #1 73 [2021/06/22 15:23:24.678] Finished: FAILURE

      就如同在x86服務器上構建的鏡像在鯤鵬ECS上運行時出現的錯誤:

      # docker run -it b57c09a0fa62 /bin/sh WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested standard_init_linux.go:228: exec user process caused: exec format error

      問題修復

      在代碼托管服務中查看代碼倉phoenix-sample中的vote/Dockerfile文件:

      # Using official python runtime base image FROM python:2.7-alpine ...

      在容器鏡像服務的鏡像中心搜索python, 然后在“python 鏡像詳情”頁面找到支持的架構“arm64v8”點擊鏈接進入該頁面查找合適的版本。

      使用DevCloud在華為云鯤鵬ECS上自動部署鳳凰商城示例程序

      非常不幸的是2.7版本的python已經無法從這個頁面查到,更新的版本又不一定適合應用,這里我們假設舊有的版本尚未刪除,復制vote/Dockerfile為vote/Dockerfile.kunpeng,將vote/Dockerfile.kunpeng中的基礎鏡像修改為:

      FROM arm64v8/python:2.7-alpine

      同樣,復制result/Dockerfile為result/Dockerfile.kunpeng,并將其中的基礎鏡像修改為:

      FROM arm64v8/node:12.22.1-slim

      復制worker/Dockerfile.j2為result/Dockerfile.j2.kunpeng,并將其中的基礎鏡像修改為:

      FROM arm64v8/openjdk:18-ea-1-jdk-slim-buster

      修改構建任務phoenix-sample-ci-kunpeng中有制作鏡像的構建步驟中的Dockerfile路徑為其對應的鯤鵬版本,修改“生成Postgres and Redis Dockerfile”這一構建步驟中的命令為:

      echo FROM arm64v8/postgres:9.6.22-alpine > Dockerfile-postgres echo FROM arm64v8/redis:5.0.12-alpine > Dockerfile-redis

      完成以上修改后保存并執行構建任務phoenix-sample-ci-kunpeng,能夠成功構建出可在鯤鵬ECS運行的版本。

      應用部署和測試

      按照官方文檔步驟七:部署應用(彈性云服務器篇)可以將構建任務phoenix-sample-ci-kunpeng構建的軟件部署到鯤鵬ECS。

      其中Docker Compose的安裝可參考官方文檔鯤鵬移植指南中的安裝Docker Compose中的方法。

      在網上商城(5000端口的前端應用)點擊喜歡某一商品,在管理端(5001端口的前端應用)的儀表盤中能夠看到相應的數據變化,說明除了2個前端應用外,worker、postgres和redis這3個微服務也可以正常工作。

      保存基礎鏡像到私有鏡像倉庫

      作為DevOps全流程樣例項目,鳳凰商城使用dockerhub中的公共鏡像作為基礎鏡像,這也無可厚非。

      而對于正式的項目,出于性能、安全等方面的考慮,我們應采用私有的容器鏡像服務存儲驗證過的基礎鏡像,以避免因公共鏡像變化甚至刪除造成安全或可用性方面的問題。

      此外,華為云容器鏡像服務SWR文檔中一些最佳實踐,如編寫高效的Dockerfile,值得認真閱讀。

      結論

      鳳凰商城示例程序采用的技術棧無需修改源代碼即可遷移到鯤鵬計算平臺,但仍需修改一些微服務組件運行依賴的基礎鏡像,同時需要修改編譯構建任務的配置信息,這可能是因為鳳凰商城示例程序編寫時還沒有考慮對鯤鵬計算平臺的支持。此外,鳳凰商城示例程序使用的一些基礎鏡像并沒有如編寫高效的Dockerfile說明的那樣使用特定的標簽,一些鏡像版本在dockerhub中已難以找到完全對應的arm64v8版本,有必要考慮進一步完善。而通過簡單的配置修改就可以輕松將鳳凰商城示例程序遷移到鯤鵬計算平臺,也說明DevCloud和鯤鵬計算平臺在產品、文檔等方面都已非常成熟,可以讓開發者放心使用。

      DevOps 彈性云服務器 ECS 鯤鵬

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:OpenCV 3最新模塊介紹
      下一篇:如何保障企業數據資產的全生命周期安全?看這篇就夠了
      相關文章
      国产中文在线亚洲精品官网| 国产亚洲精品拍拍拍拍拍| 亚洲精品白浆高清久久久久久| 亚洲精品无码av天堂| 国产精品亚洲а∨无码播放麻豆| 亚洲Av永久无码精品一区二区| 亚洲熟女乱色一区二区三区| 亚洲Av高清一区二区三区| 亚洲国产精品一区二区久| 亚洲狠狠狠一区二区三区| 亚洲国产模特在线播放| 亚洲成a人片在线观看播放| 中文字幕亚洲色图| 久久国产亚洲高清观看| 久久亚洲sm情趣捆绑调教 | 亚洲理论在线观看| 亚洲六月丁香六月婷婷蜜芽| 亚洲午夜成激人情在线影院 | 亚洲国产日韩在线人成下载| 亚洲国产成人精品无码一区二区| 亚洲欧洲在线播放| 亚洲一区二区三区在线观看蜜桃| ass亚洲**毛茸茸pics| 一本色道久久综合亚洲精品蜜桃冫 | 亚洲国产超清无码专区| 亚洲videos| 亚洲欧美中文日韩视频| 国内成人精品亚洲日本语音| 亚洲国产精品激情在线观看 | 久久国产成人精品国产成人亚洲| 国产亚洲日韩一区二区三区| 精品国产_亚洲人成在线高清| 久久99国产亚洲精品观看| 久久精品国产亚洲AV嫖农村妇女 | 国产亚洲综合视频| 中文字幕在线亚洲精品| 久久亚洲精品中文字幕无码| 亚洲精品在线播放视频| 亚洲videosbestsex日本| 久久精品国产亚洲av瑜伽| 亚洲中文字幕丝袜制服一区|