Docker環(huán)境介紹
OpenHarmony為開發(fā)者提供了兩種Docker環(huán)境,以幫助開發(fā)者快速完成復(fù)雜的開發(fā)環(huán)境準(zhǔn)備工作。兩種Docker環(huán)境及適用場景如下:
- 獨(dú)立Docker環(huán)境:適用于直接基于Ubuntu、Windows操作系統(tǒng)平臺(tái)進(jìn)行版本編譯的場景。
- 基于HPM的Docker環(huán)境:適用于使用HPM工具進(jìn)行發(fā)行版編譯的場景。
表1 Docker鏡像介紹
環(huán)境準(zhǔn)備
在使用Docker環(huán)境前,需要準(zhǔn)備源碼和一些基本工具,以Ubuntu為例,您需要執(zhí)行以下步驟:
- 安裝Docker
- 在Ubuntu中,可以使用下面的命令來安裝Docker
sudo apt install docker.io
- 其他系統(tǒng)的Docker安裝請(qǐng)參考Docker指導(dǎo)。
-
1.獲取OpenHarmony源碼
2.獲取使用權(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ā)者可以通過該鏡像在很大程度上簡化編譯前的環(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
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
說明:
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))
- 啟動(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/目錄下。
說明:
如需退出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
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))
- 啟動(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/目錄下。說明:
如需退出Docker,執(zhí)行exit命令即可。這個(gè)命令會(huì)停止當(dāng)前的Docker容器,并返回到您的操作系統(tǒng)。基于HPM的Docker環(huán)境
docker_dist是一個(gè)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
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í)行編譯命令。
- 選擇解決方案。
export solution={product}
{product}為需編譯的解決方案,如:@ohos/hispark_taurus、@ohos/hispark_aries、@ohos/hispark_pegasus。
- 獲取源碼及執(zhí)行編譯。
hpm run docker
以上兩種方式以@ohos/hispark_taurus為例,執(zhí)行成功結(jié)果如下:文章來源:http://www.zghlxwxcb.cn/news/detail-838630.html
...... ohos ipcamera_hispark_taurus build success! @ohos/hispark_taurus: distribution building completed.
自行安裝docker(非Ubuntu環(huán)境)
自行安裝docker相關(guān)操作如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-838630.html# 拉取鏡像 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)于OpenHarmony—Docker編譯環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!