[文章]如何在win10家庭版上用docker快速搭建鸿蒙开发环境

阅读量0
0
0

# 如何在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%servicingPackages*Hyper-V*.mum >hyper-v.txt

for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%servicingPackages%%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_MACHINEsoftwareMicrosoftWindows NTCurrentVersion" /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生成中间文件才能正常编译







回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友