|
如何在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生成中間文件才能正常編譯 |
|