電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 947|回復: 0
收起左側

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

[復制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉到指定樓層
樓主
發(fā)表于 2021-1-27 09:56:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如何在win10家庭版上用docker快速搭建鴻蒙開發(fā)環(huán)境,   

# 如何在win10家庭版上用docker快速搭建鴻蒙開發(fā)環(huán)境 (Building the Development Environment for HarmonyOS by Docker under the  Win10 Home Editon   )



筆者按:

聽說社區(qū)快支持Markdown了,先不改格式了 ,博客地址https://blog.csdn.net/qq_46440185?t=1查看渲染后效果



*特別鳴謝*:感謝李隆、王華僑等大佬提供的鏡像和電子發(fā)燒友社區(qū)的硬件支持



## docker下載(Download the Docker)

從[docker官網(wǎng)](https://store.docker.com/editions/community/docker-ce-desktop-windows ) 獲取docker 安裝包(win10社區(qū)版2.5和3.1都測試成功)。感覺內(nèi)網(wǎng)速度就可以,開了IDM基本跑滿帶寬。



![]()



按照界面提示一路默認安裝完成

但是此時系統(tǒng)提示虛擬化未開啟



## 開啟hyper-v(Enable hyper-v)

對,你沒看錯,win10家庭和學生版也能開啟hyper-v,只不過系統(tǒng)配置,要有點小改動。



參見筆者的電腦系統(tǒng)



在win10系統(tǒng)任意位置(在d盤試過了)創(chuàng)建一個cmd文件Hyper-V.cmd,用記事本(或其他編輯器)打開,輸入以下內(nèi)容



```shell

pushd “%~dp0“



dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt



for /f %%i in (\“findstr /i . hyper-v.txt 2^>nul\“) do dism /online /norestart /add-package:“%SystemRoot%\servicing\Packages\%%i“



del hyper-v.txt



Dism /online /enable-feature /featurename:microsoft-Hyper-V-All /LimitAccess /ALL

```

運行完一遍就可以Crtl+C退出了,文件目錄下生成了hper-v.txt文件。

![]()

控制面板-程序-啟用或關閉Windows功能 此時發(fā)現(xiàn)Windows功能選項中出現(xiàn)Hyper-V選項,勾選,按照系統(tǒng)要求重啟



在任務管理器-性能中觀察到虛擬化已開啟



![]()



若docker仍然不能正常啟動。



以管理員身份打開Powershell(或cmd)執(zhí)行以下命令

```shell

REG ADD “HKEY_LOCAL_MACHINE\software\Microsoft\Windows NT\CurrentVersion“ /v EditionId /T REG_EXPAND_SZ /d Professional /F

```

重啟,基本就沒問題了



此時在點擊桌面上的鯨魚圖標



初次成功打開docker后是一段入門教程,新手可按照提示體驗docker用法



之后可以在任務欄找到灰色鯨魚圖標





## 鏡像使用(the Usage Of Mirrors)

推薦鏡像:華為官方的獨立版,社區(qū)大佬們提供的版本(以下簡稱官方版、社區(qū)版)



### 官方版(Official Editon)

特點:包含一套獨立的ubuntu環(huán)境+編譯工具(已含hpm),免受其他容器干擾但是占內(nèi)存



拉取鏡像

```shell

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

```

筆者測試時速度還可觀,直接內(nèi)網(wǎng)下也是基本滿速,100M帶寬下等待約3分鐘即可



運行容器

```shell

docker run -it --name xxx -v “D:/code:/home/openharmony“ swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.2

```



注:

1、xxx是容器運行起來后的標記名,由用戶自定義,區(qū)別相同鏡像的不同容器,可以在Container/App中查看

2、“D:/OHOS/code:/home/openharmony“ 其中D:/OHOS/code為代碼在win10系統(tǒng)中的位置(根據(jù)你的情況修改),/home/openharmony則是在ubuntu鏡像中的位置(由鏡像決定)

3、swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.2 是鏡像倉庫地址



讓我們編譯一下

```

python build.py wifiiot

```

![]()



成功!



### 社區(qū)版(Community Edition)

特點:和本地安裝的其他鏡像共用大部分編譯環(huán)境(不含hpm),文件輕巧,鏡像文件僅200M多一些,經(jīng)過社區(qū)大佬的維護改進有很多便捷操作,個人體驗甚至優(yōu)于官方版

拉取鏡像+運行容器

```shell

docker run -it --name hm_build -v “D:/OHOS/code:/mnt“ walker2048/hm_build:slim_iot

```

```

docker run -it --name hm_build -v “D:/OHOS/code:/mnt  “ walker2048/hm_build:slim_iot

```



注:實際上,運行時系統(tǒng)會自動拉取缺失的鏡像,所以上面的例子直接docker run 也是可以的



配置環(huán)境

第一次使用時系統(tǒng)中往往缺少相應編譯環(huán)境,有提示需要進行配置

```

setupEnv

```

提示按照開發(fā)板類型配置,以WiFiIoT為例



按照提示,輸入對應命令,自動下載缺失的編譯工具

```

setupEnv wifiiot

```

以后運行其他鏡像,還可以共用這些工具



編譯

我們來執(zhí)行一下編譯命令

```

python build.py wifiiot

```

觀察到BUILD SUCCESS,編譯成功



在此容器中你也可以選擇

運行 export BOARD=wifiiot 或 ipcamera_hi3516dv300 | ipcamera_hi3518ev300

后執(zhí)行 hmBuildStart

應該是可以將編譯命令簡化成你喜歡的其他名稱(吐槽一下,當前官方初始的編譯命令確實夠長的)



## 補充(Addition)



- docker文件直接掛載在win10下運行資源占用高于wsl,如需提高運行效率:可參照[docker官方文檔](https://docs.docker.com/docker-for-windows/wsl/#develop-with-docker-and-wsl-2) 配合wsl2后端使用

- 如果代碼是用hpm獲取的即使已經(jīng)在wsl中生成過build.py 文件 第一次用docker打開文件名仍是紅色的無法使用python build.py wifiiot指令編譯,需要再次hpm dist生成中間文件才能正常編譯
回復

使用道具 舉報

發(fā)表回復

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關注微信 下載APP 返回頂部 返回列表