• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_pegasus157
158  **方式二:**
159
160  设置环境变量来选择解决方案,再执行编译命令。
161
162  1. 选择解决方案。
163
164      ```
165      export solution={product}
166      ```
167
168      {product}为需编译的解决方案,如:\@ohos/hispark_taurus、\@ohos/hispark_aries、\@ohos/hispark_pegasus169  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