1# Docker编译环境 2 3 4## Docker环境介绍 5 6OpenHarmony为开发者提供了两种Docker环境,以帮助开发者快速完成复杂的开发环境准备工作。两种Docker环境及适用场景如下: 7 8- 独立Docker环境:适用于直接基于Ubuntu、Windows操作系统平台进行版本编译的场景。 9 10- 基于HPM的Docker环境:适用于使用HPM工具进行发行版编译的场景。 11 12**表1** Docker镜像介绍 13 14| 系统类型 | 运行平台 | Docker镜像仓库 | 标签 | 15| -------- | -------- | -------- | -------- | 16| 轻量和小型系统/标准系统(独立Docker环境) | Ubuntu/Windows | swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker | 1.0.0 | 17| 轻量和小型系统(HPM Docker环境) | Ubuntu/Windows | swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker | 0.0.3 | 18 19 20## 环境准备 21 22在使用docker环境前需要先完成以下操作: 23 241. 安装Docker,Docker安装请参考[官方指导](https://docs.docker.com/engine/install/)。 25 262. 获取OpenHarmony源码,请参考[获取源码](sourcecode-acquire.md)。 27 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br> 28 > HPM Docker环境无需单独获取源码。 29 303. 请使用具备root权限的用户,或已被授予docker使用权限的用户进行后续操作。 31 32## 独立Docker环境 33 34OpenHarmony的Docker镜像托管在HuaweiCloud SWR上。开发者可以通过该镜像在很大程度上简化编译前的环境配置。下文将介绍具体使用步骤。 35 36### 搭建Docker环境(轻量系统和小型系统) 37 381. 获取Docker镜像。 39 40 ``` 41 docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0 42 ``` 43 442. 进入源码根目录执行如下命令,从而进入Docker构建环境。 45 ubuntu下执行: 46 47 ``` 48 docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0 49 ``` 50 51 windows下执行(假设源码目录为D:\OpenHarmony): 52 53 54 ``` 55 docker run -it -v D:\OpenHarmony:/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0 56 ``` 57 58### 编译源码(轻量系统和小型系统) 59 60通过如下编译脚本启动轻量系统类设备(参考内存≥128KiB)和小型系统类设备(参考内存≥1MiB)的编译。下文以Hi3516平台为例说明具体编译步骤。 61 62 设置编译路径,选择当前路径。 63 64``` 65hb set 66 . 67``` 68 69 **图1** 设置编译界面 70 71 ![zh-cn_image_0000001153508656](figures/zh-cn_image_0000001153508656.png) 72 73> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br> 74> 当前开发板平台和编译界面的对应关系如下: 75> 76> - Hi3861:wifiiot_hispark_pegasus\@hisilicon 77> 78> - Hi3516:ipcamera_hispark_taurus\@hisilicon 79 80 811. 选择ipcamera_hispark_taurus\@hisilicon并回车。 82 832. 执行编译。 84 85 ``` 86 hb build -f 87 ``` 88 893. 查看编译结果。 90 编译结果文件生成在out/hispark_taurus/ipcamera_hispark_taurus目录下。 91 92### 搭建Docker环境(标准系统) 93 941. 获取Docker镜像。 95 96 ``` 97 docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0 98 ``` 99 1002. 进入源码根目录执行如下命令,从而进入Docker构建环境。 101 102 ``` 103 docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0 104 ``` 105 106### 编译源码(标准系统) 107 108 通过如下编译脚本启动标准系统类设备(参考内存≥128MB)的编译。 109 110``` 111./build.sh --product-name {product_name} --ccache 112``` 113 114{product_name}为当前版本支持的平台。比如:hispark_taurus_standard和rk3568等。 115 116编译所生成的文件都归档在out/{device_name}/目录下,结果镜像输出在 out/{device_name}/packages/phone/images/ 目录下。 117 118 119> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br> 120> 如需退出Docker,执行exit命令即可。 121 122 123## 基于HPM的Docker环境 124 125docker_dist是一个[HPM](https://hpm.harmonyos.com/)系统中的模板组件,能够帮助用户快速初始化HPM工程,利用docker镜像来快速编译OpenHarmony发行版,在很大程度上简化了编译前的环境配置。开发者在配置好Ubuntu和[hpm-cli](https://device.harmonyos.com/cn/docs/documentation/guide/hpm-part-development-install-0000001178291102)开发环境后,可以通过以下步骤来使用我们提供的Docker环境。 126 127 128### 搭建Docker环境 129 1301. 初始化安装模板。在任意工作目录中执行以下命令。 131 132 ``` 133 hpm init -t @ohos/docker_dist 134 ``` 135 1362. 修改publishAs。 137 因为获取到的是模板类型的包,要把包的类型改为需要的类型。 在当前目录下打开bundle.json文件,把"publishAs"字段的值由"template"改为"distribution"。 138 139 140### 获取及编译源码 141 142执行编译。自动安装docker只能在Ubuntu环境下执行,如果其他环境,需要用户自行安装docker,然后拉取镜像,执行编译。 143 144- **自动安装docker(Ubuntu环境)**<br> 145 以下命令可以帮助用户自动安装docker, 拉取镜像,并且在容器中开始运行对应解决方案的拉取和编译。 146 147 **方式一:** 148 149 命令后接参数指定解决方案,格式如下: 150 151 152 ``` 153 hpm run docker solution={product} 154 ``` 155 156 {product}为需编译的解决方案,如:\@ohos/hispark_taurus、\@ohos/hispark_aries、\@ohos/hispark_pegasus。 157 158 **方式二:** 159 160 设置环境变量来选择解决方案,再执行编译命令。 161 162 1. 选择解决方案。 163 164 ``` 165 export solution={product} 166 ``` 167 168 {product}为需编译的解决方案,如:\@ohos/hispark_taurus、\@ohos/hispark_aries、\@ohos/hispark_pegasus。 169 2. 获取源码及执行编译。 170 171 ``` 172 hpm run docker 173 ``` 174 175 以上两种方式以\@ohos/hispark_taurus为例,执行成功结果如下: 176 177 ``` 178 ...... 179 ohos ipcamera_hispark_taurus build success! 180 @ohos/hispark_taurus: distribution building completed. 181 ``` 182 183- **自行安装docker(非Ubuntu环境)**<br> 184 自行安装docker相关操作如下: 185 186 187 ``` 188 # 拉取镜像 189 docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.3# linux环境下的编译 190 hpm run distWithDocker solution={product} 191 # windows下的编译,需要配置gitbash 192 hpm config set shellPath "gitbash路径" 193 hpm run distWithDocker solution={product} 194 ``` 195