电子产业一站式赋能平台

PCB联盟网

搜索
查看: 945|回复: 0
收起左侧

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

[复制链接]

2607

主题

2607

帖子

7472

积分

高级会员

Rank: 5Rank: 5

积分
7472
发表于 2021-1-27 09:56:36 | 显示全部楼层 |阅读模式
如何在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生成中间文件才能正常编译
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表