gettools-acquire.md 6.5 KB
Newer Older
D
duangavin123 已提交
1
# Docker编译环境
D
duangavin123 已提交
2

D
duangavin123 已提交
3 4

## Docker环境介绍
D
duangavin123 已提交
5 6 7

OpenHarmony为开发者提供了两种Docker环境,以帮助开发者快速完成复杂的开发环境准备工作。两种Docker环境及适用场景如下:

D
duangavin123 已提交
8
- 独立Docker环境:适用于直接基于Ubuntu、Windows操作系统平台进行版本编译的场景。
D
duangavin123 已提交
9

D
duangavin123 已提交
10
- 基于HPM的Docker环境:适用于使用HPM工具进行发行版编译的场景。
D
duangavin123 已提交
11

12
**表1** Docker镜像介绍
D
duangavin123 已提交
13

D
duangavin123 已提交
14 15
| 系统类型 | 运行平台 | Docker镜像仓库 | 标签 | 
| -------- | -------- | -------- | -------- |
16
| 轻量和小型系统/标准系统(独立Docker环境) | Ubuntu/Windows | swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker | 1.0.0 | 
D
duangavin123 已提交
17
| 轻量和小型系统(HPM Docker环境) | Ubuntu/Windows | swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker | 0.0.3 | 
D
duangavin123 已提交
18 19


D
duangavin123 已提交
20
## 环境准备
D
duangavin123 已提交
21

D
duangavin123 已提交
22
在使用docker环境前需要先完成以下操作:
D
duangavin123 已提交
23

D
duangavin123 已提交
24
1. 安装Docker,Docker安装请参考[官方指导](https://docs.docker.com/engine/install/)
D
duangavin123 已提交
25

D
duangavin123 已提交
26
2. 获取OpenHarmony源码,请参考[获取源码](https://device.harmonyos.com/cn/docs/documentation/guide/sourcecode-acquire-0000001050769927)
27
   > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br>
D
duangavin123 已提交
28
   > HPM Docker环境无需单独获取源码。
D
duangavin123 已提交
29 30


D
duangavin123 已提交
31
## 独立Docker环境
D
duangavin123 已提交
32

D
duangavin123 已提交
33
OpenHarmony的Docker镜像托管在[HuaweiCloud SWR](https://console.huaweicloud.com/swr/?region=cn-south-1#/app/warehouse/warehouseMangeDetail/goldensir/openharmony-docker/openharmony-docker?type=ownImage)上。开发者可以通过该镜像在很大程度上简化编译前的环境配置。下文将介绍具体使用步骤。
D
duangavin123 已提交
34

D
duangavin123 已提交
35
### 搭建Docker环境(轻量系统和小型系统)
D
duangavin123 已提交
36

D
duangavin123 已提交
37 38 39 40 41
1. 获取Docker镜像。
     
   ```
   docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0
   ```
D
duangavin123 已提交
42

D
duangavin123 已提交
43 44 45 46 47 48
2. 进入源码根目录执行如下命令,从而进入Docker构建环境。
     ubuntu下执行:
     
   ```
   docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0
   ```
D
duangavin123 已提交
49

D
duangavin123 已提交
50
   windows下执行(假设源码目录为D:\OpenHarmony):
D
duangavin123 已提交
51

D
duangavin123 已提交
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
   ```
D
duangavin123 已提交
56

D
duangavin123 已提交
57
### 编译源码(轻量系统和小型系统)
D
duangavin123 已提交
58

D
duangavin123 已提交
59
通过如下编译脚本启动轻量系统类设备(参考内存≥128KiB)和小型系统类设备(参考内存≥1MiB)的编译。下文以Hi3516平台为例说明具体编译步骤。
D
duangavin123 已提交
60

D
duangavin123 已提交
61 62
  设置编译路径,选择当前路径。
  
D
duangavin123 已提交
63 64
```
hb set
D
duangavin123 已提交
65
 .
D
duangavin123 已提交
66 67
```

D
duangavin123 已提交
68
  **图1** 设置编译界面
D
duangavin123 已提交
69

D
duangavin123 已提交
70
  ![zh-cn_image_0000001153508656](figures/zh-cn_image_0000001153508656.png)
D
duangavin123 已提交
71

72
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br>
D
duangavin123 已提交
73 74 75 76 77
> 当前开发板平台和编译界面的对应关系如下:
> 
> - Hi3861:wifiiot_hispark_pegasus\@hisilicon
> 
> - Hi3516:ipcamera_hispark_taurus\@hisilicon
78

D
duangavin123 已提交
79

D
duangavin123 已提交
80
1. 选择ipcamera_hispark_taurus\@hisilicon并回车。
D
duangavin123 已提交
81

D
duangavin123 已提交
82 83 84 85 86
2. 执行编译。
     
   ```
   hb build -f
   ```
D
duangavin123 已提交
87

D
duangavin123 已提交
88 89
3. 查看编译结果。
   编译结果文件生成在out/hispark_taurus/ipcamera_hispark_taurus目录下。
D
duangavin123 已提交
90

D
duangavin123 已提交
91
### 搭建Docker环境(标准系统)
D
duangavin123 已提交
92

D
duangavin123 已提交
93 94 95
1. 获取Docker镜像。
     
   ```
96
   docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0
D
duangavin123 已提交
97
   ```
D
duangavin123 已提交
98

D
duangavin123 已提交
99 100 101
2. 进入源码根目录执行如下命令,从而进入Docker构建环境。
     
   ```
102
   docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0
D
duangavin123 已提交
103
   ```
D
duangavin123 已提交
104

D
duangavin123 已提交
105
### 编译源码(标准系统)
D
duangavin123 已提交
106

D
duangavin123 已提交
107 108
  通过如下编译脚本启动标准系统类设备(参考内存≥128MB)的编译。
  
C
conglin 已提交
109
```
C
c00565983 已提交
110
./build.sh --product-name {product_name} --ccache
C
conglin 已提交
111
```
D
duangavin123 已提交
112

D
duangavin123 已提交
113
{product_name}为当前版本支持的平台。比如:Hi3516DV300和rk3568等。
D
duangavin123 已提交
114

W
weichaox 已提交
115
编译所生成的文件都归档在out/{device_name}/目录下,结果镜像输出在 out/{device_name}/packages/phone/images/ 目录下。
D
duangavin123 已提交
116 117


118 119
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br>
> 如需退出Docker,执行exit命令即可。
D
duangavin123 已提交
120 121


D
duangavin123 已提交
122
## 基于HPM的Docker环境
D
duangavin123 已提交
123

D
duangavin123 已提交
124
docker_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环境。
D
duangavin123 已提交
125 126


D
duangavin123 已提交
127
### 搭建Docker环境
D
duangavin123 已提交
128

D
duangavin123 已提交
129 130 131 132 133
1. 初始化安装模板。在任意工作目录中执行以下命令。
     
   ```
   hpm init -t @ohos/docker_dist
   ```
D
duangavin123 已提交
134

D
duangavin123 已提交
135 136
2. 修改publishAs。
   因为获取到的是模板类型的包,要把包的类型改为需要的类型。 在当前目录下打开bundle.json文件,把"publishAs"字段的值由"template"改为"distribution"。
D
duangavin123 已提交
137 138


D
duangavin123 已提交
139
### 获取及编译源码
D
duangavin123 已提交
140 141 142

执行编译。自动安装docker只能在Ubuntu环境下执行,如果其他环境,需要用户自行安装docker,然后拉取镜像,执行编译。

143
- **自动安装docker(Ubuntu环境)**<br>
D
duangavin123 已提交
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
  以下命令可以帮助用户自动安装docker, 拉取镜像,并且在容器中开始运行对应解决方案的拉取和编译。

  **方式一:**

  命令后接参数指定解决方案,格式如下:

    
  ```
  hpm run docker solution={product}
  ```

  {product}为需编译的解决方案,如:\@ohos/hispark_taurus、\@ohos/hispark_aries、\@ohos/hispark_pegasus。

  **方式二:**

  设置环境变量来选择解决方案,再执行编译命令。

  1. 选择解决方案。
        
      ```
      export solution={product}
      ```

      {product}为需编译的解决方案,如:\@ohos/hispark_taurus、\@ohos/hispark_aries、\@ohos/hispark_pegasus。
  2. 获取源码及执行编译。
        
      ```
      hpm run docker
      ```

    以上两种方式以\@ohos/hispark_taurus为例,执行成功结果如下:
    
  ```
  ......
  ohos ipcamera_hispark_taurus build success!
  @ohos/hispark_taurus: distribution building completed.
  ```

182
- **自行安装docker(非Ubuntu环境)**<br>
D
duangavin123 已提交
183 184 185 186 187 188 189 190 191 192 193
  自行安装docker相关操作如下:

    
  ```
  # 拉取镜像 
  docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.3# linux环境下的编译 
  hpm run distWithDocker solution={product}
  # windows下的编译,需要配置gitbash 
  hpm config set shellPath "gitbash路径"
  hpm run distWithDocker solution={product}
  ```