Docker環(huán)境介紹
OpenHarmony為開發(fā)者提供了兩種Docker環(huán)境,以幫助開發(fā)者快速完成復(fù)雜的開發(fā)環(huán)境準備工作。兩種Docker環(huán)境及適用場景如下:
- 獨立Docker環(huán)境:適用于直接基于Ubuntu、Windows操作系統(tǒng)平臺進行版本編譯的場景。
- 基于HPM的Docker環(huán)境:適用于使用HPM工具進行發(fā)行版編譯的場景。
- 開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔:[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]。
表1 Docker鏡像介紹
系統(tǒng)類型 | 運行平臺 | Docker鏡像倉庫 | 標簽 |
---|---|---|---|
標準系統(tǒng)(獨立Docker環(huán)境) | Ubuntu/Windows | swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard | 3.2 |
小型系統(tǒng)(獨立Docker環(huán)境) | Ubuntu/Windows | swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small | 3.2 |
輕量系統(tǒng)(獨立Docker環(huán)境) | Ubuntu/Windows | swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini | 3.2 |
輕量和小型系統(tǒng)(HPM Docker環(huán)境) | Ubuntu/Windows | swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker | 0.0.3 |
環(huán)境準備
在使用Docker環(huán)境前,需要準備源碼和一些基本工具,以Ubuntu為例,您需要執(zhí)行以下步驟:
- 安裝Docker
- 在Ubuntu中,可以使用下面的命令來安裝Docker:
sudo apt install docker.io
- 其他系統(tǒng)的Docker安裝請參考[Docker指導(dǎo)]。
- 在Ubuntu中,可以使用下面的命令來安裝Docker:
- 獲取OpenHarmony源碼
請參考[獲取源碼]。說明:
HPM Docker環(huán)境無需單獨獲取源碼。 - 獲取使用權(quán)限
為了能夠使用Docker,請使用具備root權(quán)限的用戶,或已被授予Docker使用權(quán)限的用戶進行后續(xù)操作。在Ubuntu系統(tǒng)中,通常可以通過在命令前加sudo來獲取root權(quán)限。在Windows系統(tǒng)中,您可能需要在管理員模式下運行cmd或PowerShell。
獨立Docker環(huán)境
Docker鏡像是包含了運行環(huán)境和應(yīng)用程序的輕量級、可執(zhí)行的軟件包,OpenHarmony的Docker鏡像托管在HuaweiCloud SWR上。開發(fā)者可以通過該鏡像在很大程度上簡化編譯前的環(huán)境配置。這一部分將引導(dǎo)您如何在Docker環(huán)境中配置和使用OpenHarmony,下文將介紹具體使用步驟。
搭建Docker環(huán)境(輕量系統(tǒng)和小型系統(tǒng))
獲取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
進入Docker構(gòu)建環(huán)境
在獲取了鏡像之后,您需要創(chuàng)建一個新的Docker容器,并進入該容器中。進入OpenHarmony源碼根目錄執(zhí)行如下命令,從而進入Docker構(gòu)建環(huán)境。- Ubuntu系統(tǒng)
# 進入小型系統(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 # 進入輕量系統(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
):# 進入小型系統(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 # 進入輕量系統(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
說明:
docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small:3.2
這個命令的含義是,創(chuàng)建并運行一個新的OpenHarmony的Docker容器,這個容器運行在交互模式下,并且將當(dāng)前目錄映射到容器的/home/openharmony目錄。- Ubuntu系統(tǒng)
編譯源碼(輕量系統(tǒng)和小型系統(tǒng))
啟動編譯腳本
執(zhí)行docker run
命令進入Docker容器后(此時位于/home/openharmony
路徑下),您可以通過如下編譯腳本啟動輕量系統(tǒng)類設(shè)備(參考內(nèi)存≥128KiB)和小型系統(tǒng)類設(shè)備(參考內(nèi)存≥1MiB)的編譯。python3 build.py -p {product_name}@{company}
其中,
{product_name}
為當(dāng)前版本支持的平臺,{company}
為{product_name}
對應(yīng)的公司名。舉個例子,如果您要編譯的產(chǎn)品為
hisilicon
下的ipcamera_hispark_taurus
,您可以輸入以下命令來啟動編譯:python3 build.py -p ipcamera_hispark_taurus@hisilicon
同樣,如果您要編譯的產(chǎn)品是
ohemu
下的qemu_small_system_demo
,那么您可以輸入以下命令來啟動編譯:python3 build.py -p qemu_small_system_demo@ohemu
查看編譯結(jié)果
在編譯結(jié)束后,編譯所生成的文件都會被存放在out/{device_name}/
目錄下,結(jié)果鏡像輸出在out/{device_name}/packages/phone/images/
目錄下。
說明:
如需退出Docker,執(zhí)行exit
命令即可。這個命令會停止當(dāng)前的Docker容器,并返回到您的操作系統(tǒng)。
搭建Docker環(huán)境(標準系統(tǒng))
- 獲取Docker鏡像
在搭建標準系統(tǒng)的Docker環(huán)境前,我們也需要先獲取對應(yīng)的Docker鏡像。具體的命令如下:docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard:3.2
- 進入Docker構(gòu)建環(huán)境
與之前的步驟相同,我們需要創(chuàng)建一個新的Docker容器,并進入該容器中。進入openharmony源碼根目錄執(zhí)行如下命令,從而進入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
- Ubuntu系統(tǒng)
編譯源碼(標準系統(tǒng))
啟動編譯腳本
執(zhí)行docker run
命令進入Docker容器后(此時位于/home/openharmony
路徑下),您可以通過如下編譯腳本啟動標準系統(tǒng)類設(shè)備(參考內(nèi)存≥128MB)的編譯。./build.sh --product-name {product_name} --ccache
{product_name}
為當(dāng)前版本支持的平臺。例如,您要編譯的產(chǎn)品是rk3568
,那么您可以輸入以下命令來啟動編譯:./build.sh --product-name rk3568 --ccache
查看編譯結(jié)果
編譯所生成的文件都歸檔在out/{device_name}/
目錄下,結(jié)果鏡像輸出在out/{device_name}/packages/phone/images/
目錄下。
說明:
如需退出Docker,執(zhí)行exit
命令即可。這個命令會停止當(dāng)前的Docker容器,并返回到您的操作系統(tǒng)。
基于HPM的Docker環(huán)境
docker_dist是一個[HPM]系統(tǒng)中的模板組件,能夠幫助用戶快速初始化HPM工程,利用docker鏡像來快速編譯OpenHarmony發(fā)行版,在很大程度上簡化了編譯前的環(huán)境配置。開發(fā)者在配置好Ubuntu和[hpm-cli]開發(fā)環(huán)境后,可以通過以下步驟來使用我們提供的Docker環(huán)境。
搭建Docker環(huán)境
- 初始化安裝模板
在任意工作目錄中執(zhí)行以下命令hpm init -t @ohos/docker_dist
- 修改publishAs
因為獲取到的是模板類型的包,要把包的類型改為需要的類型。 在當(dāng)前目錄下打開bundle.json文件,把"publishAs"字段的值由"template"改為"distribution"。
獲取及編譯源碼
執(zhí)行編譯。自動安裝docker只能在Ubuntu環(huán)境下執(zhí)行,如果其他環(huán)境,需要用戶自行安裝docker,然后拉取鏡像,執(zhí)行編譯。
自動安裝docker(Ubuntu環(huán)境)
以下命令可以幫助用戶自動安裝docker, 拉取鏡像,并且在容器中開始運行對應(yīng)解決方案的拉取和編譯。
方式一:
命令后接參數(shù)指定解決方案,格式如下:hpm run docker solution={product}
{product}為需編譯的解決方案,如:@ohos/hispark_taurus、@ohos/hispark_aries、@ohos/hispark_pegasus。
方式二:
設(shè)置環(huán)境變量來選擇解決方案,再執(zhí)行編譯命令。
選擇解決方案。
export solution={product}
{product}為需編譯的解決方案,如:@ohos/hispark_taurus、@ohos/hispark_aries、@ohos/hispark_pegasus。
獲取源碼及執(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}
審核編輯 黃宇
-
編譯
+關(guān)注
關(guān)注
0文章
657瀏覽量
32852 -
Docker
+關(guān)注
關(guān)注
0文章
457瀏覽量
11846 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2339瀏覽量
42805 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3713瀏覽量
16256
發(fā)布評論請先 登錄
相關(guān)推薦
評論