Docker環(huán)境介紹
OpenHarmony為開(kāi)發(fā)者提供了兩種Docker環(huán)境,以幫助開(kāi)發(fā)者快速完成復(fù)雜的開(kāi)發(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)景。
- 開(kāi)發(fā)前請(qǐng)熟悉鴻蒙開(kāi)發(fā)指導(dǎo)文檔:[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]。
表1 Docker鏡像介紹
系統(tǒng)類型 | 運(yùn)行平臺(tái) | Docker鏡像倉(cāng)庫(kù) | 標(biāo)簽 |
---|---|---|---|
標(biāo)準(zhǔn)系統(tǒng)(獨(dú)立Docker環(huán)境) | Ubuntu/Windows | swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard | 3.2 |
小型系統(tǒng)(獨(dú)立Docker環(huán)境) | Ubuntu/Windows | swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small | 3.2 |
輕量系統(tǒng)(獨(dú)立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)境準(zhǔn)備
在使用Docker環(huán)境前,需要準(zhǔn)備源碼和一些基本工具,以Ubuntu為例,您需要執(zhí)行以下步驟:
- 安裝Docker
- 在Ubuntu中,可以使用下面的命令來(lái)安裝Docker:
sudo apt install docker.io
- 其他系統(tǒng)的Docker安裝請(qǐng)參考[Docker指導(dǎo)]。
- 在Ubuntu中,可以使用下面的命令來(lái)安裝Docker:
- 獲取OpenHarmony源碼
請(qǐng)參考[獲取源碼]。說(shuō)明:
HPM Docker環(huán)境無(wú)需單獨(dú)獲取源碼。 - 獲取使用權(quán)限
為了能夠使用Docker,請(qǐng)使用具備root權(quán)限的用戶,或已被授予Docker使用權(quán)限的用戶進(jìn)行后續(xù)操作。在Ubuntu系統(tǒng)中,通常可以通過(guò)在命令前加sudo來(lái)獲取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上。開(kāi)發(fā)者可以通過(guò)該鏡像在很大程度上簡(jiǎn)化編譯前的環(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
進(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
說(shuō)明:
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目錄。- Ubuntu系統(tǒng)
編譯源碼(輕量系統(tǒng)和小型系統(tǒng))
啟動(dòng)編譯腳本
執(zhí)行docker run
命令進(jìn)入Docker容器后(此時(shí)位于/home/openharmony
路徑下),您可以通過(guò)如下編譯腳本啟動(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
,您可以輸入以下命令來(lái)啟動(dòng)編譯:python3 build.py -p ipcamera_hispark_taurus@hisilicon
同樣,如果您要編譯的產(chǎn)品是
ohemu
下的qemu_small_system_demo
,那么您可以輸入以下命令來(lái)啟動(dòng)編譯:python3 build.py -p qemu_small_system_demo@ohemu
查看編譯結(jié)果
在編譯結(jié)束后,編譯所生成的文件都會(huì)被存放在out/{device_name}/
目錄下,結(jié)果鏡像輸出在out/{device_name}/packages/phone/images/
目錄下。
說(shuō)明:
如需退出Docker,執(zhí)行exit
命令即可。這個(gè)命令會(huì)停止當(dāng)前的Docker容器,并返回到您的操作系統(tǒng)。
搭建Docker環(huán)境(標(biāo)準(zhǔn)系統(tǒng))
- 獲取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
- 進(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
- Ubuntu系統(tǒng)
編譯源碼(標(biāo)準(zhǔn)系統(tǒng))
啟動(dòng)編譯腳本
執(zhí)行docker run
命令進(jìn)入Docker容器后(此時(shí)位于/home/openharmony
路徑下),您可以通過(guò)如下編譯腳本啟動(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
,那么您可以輸入以下命令來(lái)啟動(dòng)編譯:./build.sh --product-name rk3568 --ccache
查看編譯結(jié)果
編譯所生成的文件都?xì)w檔在out/{device_name}/
目錄下,結(jié)果鏡像輸出在out/{device_name}/packages/phone/images/
目錄下。
說(shuō)明:
如需退出Docker,執(zhí)行exit
命令即可。這個(gè)命令會(huì)停止當(dāng)前的Docker容器,并返回到您的操作系統(tǒng)。
基于HPM的Docker環(huán)境
docker_dist是一個(gè)[HPM]系統(tǒng)中的模板組件,能夠幫助用戶快速初始化HPM工程,利用docker鏡像來(lái)快速編譯OpenHarmony發(fā)行版,在很大程度上簡(jiǎn)化了編譯前的環(huán)境配置。開(kāi)發(fā)者在配置好Ubuntu和[hpm-cli]開(kāi)發(fā)環(huán)境后,可以通過(guò)以下步驟來(lái)使用我們提供的Docker環(huán)境。
搭建Docker環(huán)境
- 初始化安裝模板
在任意工作目錄中執(zhí)行以下命令hpm init -t @ohos/docker_dist
- 修改publishAs
因?yàn)楂@取到的是模板類型的包,要把包的類型改為需要的類型。 在當(dāng)前目錄下打開(kāi)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, 拉取鏡像,并且在容器中開(kāi)始運(yùn)行對(duì)應(yīng)解決方案的拉取和編譯。
方式一:
命令后接參數(shù)指定解決方案,格式如下:hpm run docker solution={product}
{product}為需編譯的解決方案,如:@ohos/hispark_taurus、@ohos/hispark_aries、@ohos/hispark_pegasus。
方式二:
設(shè)置環(huán)境變量來(lái)選擇解決方案,再執(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文章
646瀏覽量
32668 -
Docker
+關(guān)注
關(guān)注
0文章
446瀏覽量
11738 -
鴻蒙
+關(guān)注
關(guān)注
56文章
2267瀏覽量
42485 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3548瀏覽量
15736
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論