[OpenHarmony6.0][Docker][环境]OHOS6 编译环境构建指南

T. 已测试目录

主机类型 主机版本 Docker镜像版本 结果
WSL2 Ubuntu22.04 Ubuntu20.04 PASS
WSL2 Ubuntu22.04 Ubuntu18.04 PASS
服务器 Ubuntu24.04 Ubuntu20.04 PASS

R. 软硬件要求:

  • 硬件:
设备 容量 备注
硬盘 >500G 多版本系统测试,必须固态,否则编译卡死
硬盘 >300G 单系统开发,必须固态,否则编译卡死
内存 >25G 物理机
内存 >32G WSL2
  • 软件:

​ 安装好Docker的Linux发行版。

如果你使用的是WSL2,请不要将源码存放在NTFS文件系统的目录中!!

应该把WSL2进行迁移之后,下载源码到Linux的EXT4文件系统的目录下!用户目录之类的都可以!

WSL2迁移可以参考:[WSL][教程]WSL2系统迁移到其他盘以及其他电脑教程

0. 制作过程

如果你想知道这个镜像是如何制作的,请看下面的教程,如果你只想拿到镜像。那就往下看就好了

链接:[OpenHarmony5.0][Docker][教程]OpenHarmony5.0编译环境基于WSL2封装Docker镜像教程

1. 获取源码

源码下载请参考:OHOS_5.0中的[源码下载]章节,建议使用repo下载。

拉取源码之前,请先按照拉取源码前提条件安装需要的依赖工具。

并且,创建如下的目录层级:[Home/OHOS6/OpenHarmony],在OpenHarmony文件夹中执行repo的init,用repo拉取源码

6.0 请使用tag方式拉取,最新的源码有问题编译不过。

拉取完成之后应该如下目录

2. 获取镜像

获取镜像有两种方式:

  1. Docker Hub及其镜像站获取。(本篇)

    不需要源码的话直接往下面看就可以了。下面是构建源码的链接:

    Gitee Dockerfile源码:openharmony_5.x_docker_env Issue和PR请在Gitee上提交~

    Github Dockerfile源码:openharmony_5.x_docker_env

    如果有用,辛苦麻烦给个Star喽~

3. 拉取镜像

Docker的安装请参照其他教程,较为简单,这里不再赘述

bash 复制代码
sudo docker pull taxuevernon/openharmony_5.x_docker_env:5.0

6.0 可以直接用5.0的环境编译。

如果你的网络环境拉取不下来,**请自己找国内镜像源替代。**具体如何替代自行查阅。

看一下镜像

4. 运行容器

启动的时候要顺便把源码通过Volume映射到Ubuntu里面

下面的-v内容一定要特别注意!!!

你的映射必须要到源码的上一级目录,把源码再加一层文件夹,也就是说你要映射为如下结构!!!

bash 复制代码
OHOS6/(应该映射的是这一层,也就是`-v`参数后面写的东西,映射到Docker里也应该是这个层级)
	├── OpenHarmony (源码真正存放的目录)
	├── openharmony_prebuilts (如果你是repo同步源码,这个东西后面才会有)
bash 复制代码
sudo docker run --name openharmony_5.x_docker_env -ti -v /mnt/OhosDisk/OHOS6:/home/taxue/ -p 10022:22 taxuevernon/openharmony_5.x_docker_env:5.0 /bin/bash

5. 安装hb构建工具

先进入源码目录:

bash 复制代码
cd /home/taxue/OpenHarmony

再安装:

bash 复制代码
python3 -m pip install --user build/hb

PATH我已经提前写好,不用更新。

6. 准备编译

先进入源码根目录

bash 复制代码
cd /home/taxue/OpenHarmony

6.1 clean

执行一次clean

bash 复制代码
hb clean

6.2 预编译工具

需要为你的下载的源码重新过一下编译工具

bash 复制代码
bash build/prebuilts_download.sh

一般npm每次都要重新安装的

6.3 拉取最新源码(选做)

如果你在获取源码的时候就是使用的repo,那么你可以跳过本节。一般来说不需要执行

拉取最新代码

bash 复制代码
repo sync -c

6.4 开始编译

参考链接:编译

6.4.1 脚本方式编译

6.0两个都可以使用,后者会新一点

bash 复制代码
sudo dpkg-reconfigure dash # 选择no
./build.sh -p rk3568

6.4.2 hb方式编译

源码根目录执行

bash 复制代码
hb set

之后按照你自己的板子进行选择

然后就可以进行编译了

bash 复制代码
hb build -f # 全量编译
hb build # 增量编译

6.5 编译结果

F. 参考

[OpenHarmony5.0][Docker][教程]OpenHarmony5.0编译环境基于WSL2封装Docker镜像教程

相关推荐
神奇的程序员1 小时前
从已损坏的备份中拯救数据
运维·后端·前端工程化
虾..2 小时前
Linux 软硬链接和动静态库
linux·运维·服务器
Evan芙3 小时前
Linux常见的日志服务管理的常见日志服务
linux·运维·服务器
玄斎3 小时前
MySQL 单表操作通关指南:建库 / 建表 / 插入 / 增删改查
运维·服务器·数据库·学习·程序人生·mysql·oracle
trayvontang4 小时前
Nginx之location配置
运维·nginx
十六年开源服务商4 小时前
WordPress定制开发最佳公司的用户画像
运维
学Linux的语莫4 小时前
docker,docker-compose二进制包安装
docker
世岩清上5 小时前
AI驱动的智能运维:从自动化到自主化的技术演进与架构革新
运维·人工智能·自动化
张童瑶6 小时前
Linux SSH隧道代理转发及多层转发
linux·运维·ssh
石小千6 小时前
Linux安装OpenProject
linux·运维