0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙OpenHarmony技術(shù):【Docker編譯環(huán)境】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-11 09:47 ? 次閱讀

Docker環(huán)境介紹

OpenHarmony開發(fā)者提供了兩種Docker環(huán)境,以幫助開發(fā)者快速完成復(fù)雜的開發(fā)環(huán)境準(zhǔn)備工作。兩種Docker環(huán)境及適用場(chǎng)景如下:

  • 獨(dú)立Docker環(huán)境:適用于直接基于Ubuntu、Windows操作系統(tǒng)平臺(tái)進(jìn)行版本編譯的場(chǎng)景。
  • 基于HPM的Docker環(huán)境:適用于使用HPM工具進(jìn)行發(fā)行版編譯的場(chǎng)景。
  • 開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]。

表1 Docker鏡像介紹

系統(tǒng)類型運(yùn)行平臺(tái)Docker鏡像倉庫標(biāo)簽
標(biāo)準(zhǔn)系統(tǒng)(獨(dú)立Docker環(huán)境)Ubuntu/Windowsswr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard3.2
小型系統(tǒng)(獨(dú)立Docker環(huán)境)Ubuntu/Windowsswr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small3.2
輕量系統(tǒng)(獨(dú)立Docker環(huán)境)Ubuntu/Windowsswr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini3.2
輕量和小型系統(tǒng)(HPM Docker環(huán)境)Ubuntu/Windowsswr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker0.0.3

環(huán)境準(zhǔn)備

在使用Docker環(huán)境前,需要準(zhǔn)備源碼和一些基本工具,以Ubuntu為例,您需要執(zhí)行以下步驟:

  1. 安裝Docker
    • 在Ubuntu中,可以使用下面的命令來安裝Docker:
      sudo apt install docker.io
      
    • 其他系統(tǒng)的Docker安裝請(qǐng)參考[Docker指導(dǎo)]。
  2. 獲取OpenHarmony源碼
    請(qǐng)參考[獲取源碼]。

    icon-note.gif說明:
    HPM Docker環(huán)境無需單獨(dú)獲取源碼。

  3. 獲取使用權(quán)限
    為了能夠使用Docker,請(qǐng)使用具備root權(quán)限的用戶,或已被授予Docker使用權(quán)限的用戶進(jìn)行后續(xù)操作。在Ubuntu系統(tǒng)中,通??梢酝ㄟ^在命令前加sudo來獲取root權(quán)限。在Windows系統(tǒng)中,您可能需要在管理員模式下運(yùn)行cmd或PowerShell。

獨(dú)立Docker環(huán)境

Docker鏡像是包含了運(yùn)行環(huán)境和應(yīng)用程序的輕量級(jí)、可執(zhí)行的軟件包,OpenHarmony的Docker鏡像托管在HuaweiCloud SWR上。開發(fā)者可以通過該鏡像在很大程度上簡(jiǎn)化編譯前的環(huán)境配置。這一部分將引導(dǎo)您如何在Docker環(huán)境中配置和使用OpenHarmony,下文將介紹具體使用步驟。

搭建Docker環(huán)境(輕量系統(tǒng)和小型系統(tǒng))

  1. 獲取Docker鏡像
    獲取小型系統(tǒng)鏡像的命令為:

    docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small:3.2
    

    獲取輕量系統(tǒng)鏡像的命令為:

    docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2
    
  2. 進(jìn)入Docker構(gòu)建環(huán)境
    在獲取了鏡像之后,您需要?jiǎng)?chuàng)建一個(gè)新的Docker容器,并進(jìn)入該容器中。進(jìn)入OpenHarmony源碼根目錄執(zhí)行如下命令,從而進(jìn)入Docker構(gòu)建環(huán)境。

    • Ubuntu系統(tǒng)
      # 進(jìn)入小型系統(tǒng)Docker構(gòu)建環(huán)境
      docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small:3.2
      
      # 進(jìn)入輕量系統(tǒng)Docker構(gòu)建環(huán)境
      docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2
      
    • Windows系統(tǒng)(假設(shè)源碼目錄為D:OpenHarmony):
      # 進(jìn)入小型系統(tǒng)Docker構(gòu)建環(huán)境
      docker run -it -v D:OpenHarmony:/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small:3.2
      
      # 進(jìn)入輕量系統(tǒng)Docker構(gòu)建環(huán)境
      docker run -it -v D:OpenHarmony:/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2
      

    icon-note.gif說明:
    docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small:3.2 這個(gè)命令的含義是,創(chuàng)建并運(yùn)行一個(gè)新的OpenHarmony的Docker容器,這個(gè)容器運(yùn)行在交互模式下,并且將當(dāng)前目錄映射到容器的/home/openharmony目錄。

編譯源碼(輕量系統(tǒng)和小型系統(tǒng))

  1. 啟動(dòng)編譯腳本
    執(zhí)行docker run命令進(jìn)入Docker容器后(此時(shí)位于/home/openharmony路徑下),您可以通過如下編譯腳本啟動(dòng)輕量系統(tǒng)類設(shè)備(參考內(nèi)存≥128KiB)和小型系統(tǒng)類設(shè)備(參考內(nèi)存≥1MiB)的編譯。

    python3 build.py -p {product_name}@{company}
    

    其中,{product_name}為當(dāng)前版本支持的平臺(tái),{company}{product_name}對(duì)應(yīng)的公司名。

    舉個(gè)例子,如果您要編譯的產(chǎn)品hisilicon下的ipcamera_hispark_taurus,您可以輸入以下命令來啟動(dòng)編譯:

    python3 build.py -p ipcamera_hispark_taurus@hisilicon
    

    同樣,如果您要編譯的產(chǎn)品是ohemu下的qemu_small_system_demo,那么您可以輸入以下命令來啟動(dòng)編譯:

    python3 build.py -p qemu_small_system_demo@ohemu
    
  2. 查看編譯結(jié)果
    在編譯結(jié)束后,編譯所生成的文件都會(huì)被存放在out/{device_name}/目錄下,結(jié)果鏡像輸出在out/{device_name}/packages/phone/images/目錄下。

icon-note.gif說明:
如需退出Docker,執(zhí)行exit命令即可。這個(gè)命令會(huì)停止當(dāng)前的Docker容器,并返回到您的操作系統(tǒng)。

搭建Docker環(huán)境(標(biāo)準(zhǔn)系統(tǒng))

  1. 獲取Docker鏡像
    在搭建標(biāo)準(zhǔn)系統(tǒng)的Docker環(huán)境前,我們也需要先獲取對(duì)應(yīng)的Docker鏡像。具體的命令如下:
    docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard:3.2
    
  2. 進(jìn)入Docker構(gòu)建環(huán)境
    與之前的步驟相同,我們需要?jiǎng)?chuàng)建一個(gè)新的Docker容器,并進(jìn)入該容器中。進(jìn)入openharmony源碼根目錄執(zhí)行如下命令,從而進(jìn)入Docker構(gòu)建環(huán)境。
    • Ubuntu系統(tǒng)
      docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard:3.2
      
    • Windows系統(tǒng)(假設(shè)源碼目錄為D:OpenHarmony
      docker run -it -v D:OpenHarmony:/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard:3.2
      

編譯源碼(標(biāo)準(zhǔn)系統(tǒng))

  1. 啟動(dòng)編譯腳本
    執(zhí)行docker run命令進(jìn)入Docker容器后(此時(shí)位于/home/openharmony路徑下),您可以通過如下編譯腳本啟動(dòng)標(biāo)準(zhǔn)系統(tǒng)類設(shè)備(參考內(nèi)存≥128MB)的編譯。

    ./build.sh --product-name {product_name} --ccache
    

    {product_name}為當(dāng)前版本支持的平臺(tái)。例如,您要編譯的產(chǎn)品是rk3568,那么您可以輸入以下命令來啟動(dòng)編譯:

    ./build.sh --product-name rk3568 --ccache
    
  2. 查看編譯結(jié)果
    編譯所生成的文件都?xì)w檔在out/{device_name}/目錄下,結(jié)果鏡像輸出在out/{device_name}/packages/phone/images/目錄下。

icon-note.gif說明:
如需退出Docker,執(zhí)行exit命令即可。這個(gè)命令會(huì)停止當(dāng)前的Docker容器,并返回到您的操作系統(tǒng)。

基于HPM的Docker環(huán)境

docker_dist是一個(gè)[HPM]系統(tǒng)中的模板組件,能夠幫助用戶快速初始化HPM工程,利用docker鏡像來快速編譯OpenHarmony發(fā)行版,在很大程度上簡(jiǎn)化了編譯前的環(huán)境配置。開發(fā)者在配置好Ubuntu和[hpm-cli]開發(fā)環(huán)境后,可以通過以下步驟來使用我們提供的Docker環(huán)境。

搭建Docker環(huán)境

  1. 初始化安裝模板
    在任意工作目錄中執(zhí)行以下命令
    hpm init -t @ohos/docker_dist
    
  2. 修改publishAs
    因?yàn)楂@取到的是模板類型的包,要把包的類型改為需要的類型。 在當(dāng)前目錄下打開bundle.json文件,把"publishAs"字段的值由"template"改為"distribution"。

獲取及編譯源碼

執(zhí)行編譯。自動(dòng)安裝docker只能在Ubuntu環(huán)境下執(zhí)行,如果其他環(huán)境,需要用戶自行安裝docker,然后拉取鏡像,執(zhí)行編譯。

  • 自動(dòng)安裝docker(Ubuntu環(huán)境)
    以下命令可以幫助用戶自動(dòng)安裝docker, 拉取鏡像,并且在容器中開始運(yùn)行對(duì)應(yīng)解決方案的拉取和編譯。
    方式一:
    命令后接參數(shù)指定解決方案,格式如下:

    hpm run docker solution={product}
    

    {product}為需編譯的解決方案,如:@ohos/hispark_taurus、@ohos/hispark_aries、@ohos/hispark_pegasus。

    方式二:

    設(shè)置環(huán)境變量來選擇解決方案,再執(zhí)行編譯命令。

    1. 選擇解決方案。

      export solution={product}
      

      {product}為需編譯的解決方案,如:@ohos/hispark_taurus、@ohos/hispark_aries、@ohos/hispark_pegasus。

    2. 獲取源碼及執(zhí)行編譯。

      hpm run docker
      

    以上兩種方式以@ohos/hispark_taurus為例,執(zhí)行成功結(jié)果如下:

    ......
    ohos ipcamera_hispark_taurus build success!
    @ohos/hispark_taurus: distribution building completed.
    `HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`
    
  • 自行安裝docker(非Ubuntu環(huán)境)
    自行安裝docker相關(guān)操作如下:

    # 拉取鏡像 
    docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.3# linux環(huán)境下的編譯 
    hpm run distWithDocker solution={product}
    # windows下的編譯,需要配置gitbash 
    hpm config set shellPath "gitbash路徑"
    hpm run distWithDocker solution={product}
    

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    648

    瀏覽量

    32774
  • Docker
    +關(guān)注

    關(guān)注

    0

    文章

    453

    瀏覽量

    11792
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2302

    瀏覽量

    42689
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3635

    瀏覽量

    16061
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙設(shè)備學(xué)習(xí)菜鳥指南》之【六、搭建編譯環(huán)境

    `《鴻蒙設(shè)備學(xué)習(xí)菜鳥指南》之【六、搭建編譯環(huán)境】[目錄索引]六、搭建編譯環(huán)境 我們同樣首先使用最簡(jiǎn)化的方案,先入門,然后再配置復(fù)雜的方案,循
    發(fā)表于 10-30 14:24

    如何在win10家庭版上用docker快速搭建鴻蒙開發(fā)環(huán)境

    # 如何在win10家庭版上用docker快速搭建鴻蒙開發(fā)環(huán)境 (Building the Development Environment for HarmonyOS by Docker
    發(fā)表于 01-26 22:00

    OpenHarmony2.0 編譯燒錄

    教程視頻鏈接:https://www.bilibili.com/video/BV1to4y1y76W [img]https://ss.csdn.net/p?[/img]手機(jī)鴻蒙2.0編譯燒錄教程1.環(huán)境
    發(fā)表于 06-14 10:00

    OpenHarmony 3.1 Release docker編譯指南

    最新openharmony編譯環(huán)境docker鏡像,鏡像較大,拉取時(shí)間較長,請(qǐng)耐心等待docker pull swr.cn-south-1.
    發(fā)表于 04-14 14:19

    【HarmonyOS HiSpark AI Camera試用連載 】之OpenHarmony 3.1編譯固件測(cè)試游記

    具體明了,請(qǐng)查閱OpenHarmony 3.1 Release docker編譯指南或#DAYU200體驗(yàn)官# OpenHarmony 3.1 Release
    發(fā)表于 04-23 20:40

    【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】+環(huán)境搭建2 docker環(huán)境搭建及編譯代碼

    前言:docker環(huán)境以前沒用過,華為云提供了docker編譯環(huán)境,拿來用。參考gitee上doc倉[url=https://gitee.
    發(fā)表于 05-29 17:16

    OpenHarmony開發(fā)——系統(tǒng)源碼編譯

    環(huán)境非常復(fù)雜,并且容易出錯(cuò),這里將使用docker搭建編譯環(huán)境,可以事半功倍02安裝Docker1.首先刪除可能已有的
    發(fā)表于 08-30 10:08

    OpenHarmony Docker移植實(shí)踐

    上執(zhí)行以下步驟,下載OpenAtom OpenHarmony(簡(jiǎn)稱“OpenHarmony”)的源碼并部署Docker編譯環(huán)境。 1、安裝g
    發(fā)表于 05-18 10:03

    Windows搭建OpenHarmony編譯環(huán)境

    對(duì)OpenHarmony編譯呢?答案是:可以。所以,我們今天來嘗試在Windows環(huán)境下搭建OpenHarmony編譯
    發(fā)表于 08-16 16:07

    編譯openharmony環(huán)境

    OpenHarmony是由開放原子開源基金會(huì)(OpenAtom Foundation)孵化及運(yùn)營的開源項(xiàng)目,當(dāng)前的OpenHarmony源代碼僅支持在Linux環(huán)境編譯。 開源代碼倉
    的頭像 發(fā)表于 06-23 15:29 ?1368次閱讀
    <b class='flag-5'>編譯</b><b class='flag-5'>openharmony</b><b class='flag-5'>環(huán)境</b>

    openharmony 2.0開機(jī)教程

    openharmony 2.0開機(jī)教程。 1.使用Docker建立編譯環(huán)境 mkdir OpenHarmony cd
    的頭像 發(fā)表于 06-24 09:39 ?1782次閱讀

    使用docker完成編譯環(huán)境創(chuàng)建

    作者環(huán)境:主機(jī)MacBook Pro 2015(16G),Docker Desktop for Mac(官方)
    的頭像 發(fā)表于 04-21 07:49 ?3201次閱讀

    OpenHarmony Docker移植實(shí)踐

    點(diǎn)擊藍(lán)字 ╳ 關(guān)注我們 開源項(xiàng)目 OpenHarmony 是每個(gè)人的 OpenHarmony Docker簡(jiǎn)介 從操作系統(tǒng)誕生之日起,虛擬化技術(shù)就不斷的演進(jìn)與發(fā)展,結(jié)合目前云原生的發(fā)展
    的頭像 發(fā)表于 05-18 02:50 ?612次閱讀
    <b class='flag-5'>OpenHarmony</b> <b class='flag-5'>Docker</b>移植實(shí)踐

    Windows搭建OpenHarmony編譯環(huán)境

    對(duì)OpenHarmony編譯呢?答案是:可以。所以,我們今天來嘗試在Windows環(huán)境下搭建OpenHarmony編譯
    的頭像 發(fā)表于 08-09 08:26 ?1480次閱讀
    Windows搭建<b class='flag-5'>OpenHarmony</b><b class='flag-5'>編譯</b><b class='flag-5'>環(huán)境</b>

    鴻蒙OpenHarmony運(yùn)行docker詳細(xì)步驟

    1.環(huán)境和設(shè)備 系統(tǒng)版本: 3.2release(64 位) OpenHarmony 內(nèi)核版本:5.10 標(biāo)準(zhǔn)系統(tǒng)設(shè)備: DAYU200 Docker:18.03.1 (64 位) sd 卡一張
    的頭像 發(fā)表于 03-02 15:10 ?2422次閱讀
    【<b class='flag-5'>鴻蒙</b>】<b class='flag-5'>OpenHarmony</b>運(yùn)行<b class='flag-5'>docker</b>詳細(xì)步驟