|
如何在win10家庭版上用docker快速搭建鸿蒙开发环境,
# 如何在win10家庭版上用docker快速搭建鸿蒙开发环境 (Building the Development Environment for HarmonyOS by Docker under the Win10 Home Editon )
笔者按:
听说社区快支持Markdown了,先不改格式了 ,博客地址https://blog.csdn.net/qq_46440185?t=1查看渲染后效果
*特别鸣谢*:感谢李隆、王华侨等大佬提供的镜像和电子发烧友社区的硬件支持
## docker下载(Download the Docker)
从[docker官网](https://store.docker.com/editions/community/docker-ce-desktop-windows ) 获取docker 安装包(win10社区版2.5和3.1都测试成功)。感觉内网速度就可以,开了IDM基本跑满带宽。
![]()
按照界面提示一路默认安装完成
但是此时系统提示虚拟化未开启
## 开启hyper-v(Enable hyper-v)
对,你没看错,win10家庭和学生版也能开启hyper-v,只不过系统配置,要有点小改动。
参见笔者的电脑系统
在win10系统任意位置(在d盘试过了)创建一个cmd文件Hyper-V.cmd,用记事本(或其他编辑器)打开,输入以下内容
```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功能 此时发现Windows功能选项中出现Hyper-V选项,勾选,按照系统要求重启
在任务管理器-性能中观察到虚拟化已开启
![]()
若docker仍然不能正常启动。
以管理员身份打开Powershell(或cmd)执行以下命令
```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)
推荐镜像:华为官方的独立版,社区大佬们提供的版本(以下简称官方版、社区版)
### 官方版(Official Editon)
特点:包含一套独立的ubuntu环境+编译工具(已含hpm),免受其他容器干扰但是占内存
拉取镜像
```shell
docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.2
```
笔者测试时速度还可观,直接内网下也是基本满速,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是容器运行起来后的标记名,由用户自定义,区别相同镜像的不同容器,可以在Container/App中查看
2、“D:/OHOS/code:/home/openharmony“ 其中D:/OHOS/code为代码在win10系统中的位置(根据你的情况修改),/home/openharmony则是在ubuntu镜像中的位置(由镜像决定)
3、swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.2 是镜像仓库地址
让我们编译一下
```
python build.py wifiiot
```
![]()
成功!
### 社区版(Community Edition)
特点:和本地安装的其他镜像共用大部分编译环境(不含hpm),文件轻巧,镜像文件仅200M多一些,经过社区大佬的维护改进有很多便捷操作,个人体验甚至优于官方版
拉取镜像+运行容器
```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
```
注:实际上,运行时系统会自动拉取缺失的镜像,所以上面的例子直接docker run 也是可以的
配置环境
第一次使用时系统中往往缺少相应编译环境,有提示需要进行配置
```
setupEnv
```
提示按照开发板类型配置,以WiFiIoT为例
按照提示,输入对应命令,自动下载缺失的编译工具
```
setupEnv wifiiot
```
以后运行其他镜像,还可以共用这些工具
编译
我们来执行一下编译命令
```
python build.py wifiiot
```
观察到BUILD SUCCESS,编译成功
在此容器中你也可以选择
运行 export BOARD=wifiiot 或 ipcamera_hi3516dv300 | ipcamera_hi3518ev300
后执行 hmBuildStart
应该是可以将编译命令简化成你喜欢的其他名称(吐槽一下,当前官方初始的编译命令确实够长的)
## 补充(Addition)
- docker文件直接挂载在win10下运行资源占用高于wsl,如需提高运行效率:可参照[docker官方文档](https://docs.docker.com/docker-for-windows/wsl/#develop-with-docker-and-wsl-2) 配合wsl2后端使用
- 如果代码是用hpm获取的即使已经在wsl中生成过build.py 文件 第一次用docker打开文件名仍是红色的无法使用python build.py wifiiot指令编译,需要再次hpm dist生成中间文件才能正常编译 |
|