0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙OpenHarmony技术:【Docker编译环境】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-05-11 09:47 次阅读

Docker环境介绍

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

  • 独立Docker环境:适用于直接基于Ubuntu、Windows操作系统平台进行版本编译的场景。
  • 基于HPM的Docker环境:适用于使用HPM工具进行发行版编译的场景。
  • 开发前请熟悉鸿蒙开发指导文档:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]。

表1 Docker镜像介绍

系统类型运行平台Docker镜像仓库标签
标准系统(独立Docker环境)Ubuntu/Windowsswr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard3.2
小型系统(独立Docker环境)Ubuntu/Windowsswr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small3.2
轻量系统(独立Docker环境)Ubuntu/Windowsswr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini3.2
轻量和小型系统(HPM Docker环境)Ubuntu/Windowsswr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker0.0.3

环境准备

在使用Docker环境前,需要准备源码和一些基本工具,以Ubuntu为例,您需要执行以下步骤:

  1. 安装Docker
    • 在Ubuntu中,可以使用下面的命令来安装Docker:
      sudo apt install docker.io
      
    • 其他系统的Docker安装请参考[Docker指导]。
  2. 获取OpenHarmony源码
    请参考[获取源码]。

    icon-note.gif说明:
    HPM Docker环境无需单独获取源码。

  3. 获取使用权限
    为了能够使用Docker,请使用具备root权限的用户,或已被授予Docker使用权限的用户进行后续操作。在Ubuntu系统中,通常可以通过在命令前加sudo来获取root权限。在Windows系统中,您可能需要在管理员模式下运行cmd或PowerShell。

独立Docker环境

Docker镜像是包含了运行环境和应用程序的轻量级、可执行的软件包,OpenHarmony的Docker镜像托管在HuaweiCloud SWR上。开发者可以通过该镜像在很大程度上简化编译前的环境配置。这一部分将引导您如何在Docker环境中配置和使用OpenHarmony,下文将介绍具体使用步骤。

搭建Docker环境(轻量系统和小型系统)

  1. 获取Docker镜像
    获取小型系统镜像的命令为:

    docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small:3.2
    

    获取轻量系统镜像的命令为:

    docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2
    
  2. 进入Docker构建环境
    在获取了镜像之后,您需要创建一个新的Docker容器,并进入该容器中。进入OpenHarmony源码根目录执行如下命令,从而进入Docker构建环境。

    • Ubuntu系统
      # 进入小型系统Docker构建环境
      docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small:3.2
      
      # 进入轻量系统Docker构建环境
      docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2
      
    • Windows系统(假设源码目录为D:OpenHarmony):
      # 进入小型系统Docker构建环境
      docker run -it -v D:OpenHarmony:/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small:3.2
      
      # 进入轻量系统Docker构建环境
      docker run -it -v D:OpenHarmony:/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2
      

    icon-note.gif说明:
    docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small:3.2 这个命令的含义是,创建并运行一个新的OpenHarmony的Docker容器,这个容器运行在交互模式下,并且将当前目录映射到容器的/home/openharmony目录。

编译源码(轻量系统和小型系统)

  1. 启动编译脚本
    执行docker run命令进入Docker容器后(此时位于/home/openharmony路径下),您可以通过如下编译脚本启动轻量系统类设备(参考内存≥128KiB)和小型系统类设备(参考内存≥1MiB)的编译。

    python3 build.py -p {product_name}@{company}
    

    其中,{product_name}为当前版本支持的平台,{company}{product_name}对应的公司名。

    举个例子,如果您要编译的产品hisilicon下的ipcamera_hispark_taurus,您可以输入以下命令来启动编译:

    python3 build.py -p ipcamera_hispark_taurus@hisilicon
    

    同样,如果您要编译的产品是ohemu下的qemu_small_system_demo,那么您可以输入以下命令来启动编译:

    python3 build.py -p qemu_small_system_demo@ohemu
    
  2. 查看编译结果
    在编译结束后,编译所生成的文件都会被存放在out/{device_name}/目录下,结果镜像输出在out/{device_name}/packages/phone/images/目录下。

icon-note.gif说明:
如需退出Docker,执行exit命令即可。这个命令会停止当前的Docker容器,并返回到您的操作系统。

搭建Docker环境(标准系统)

  1. 获取Docker镜像
    在搭建标准系统的Docker环境前,我们也需要先获取对应的Docker镜像。具体的命令如下:
    docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard:3.2
    
  2. 进入Docker构建环境
    与之前的步骤相同,我们需要创建一个新的Docker容器,并进入该容器中。进入openharmony源码根目录执行如下命令,从而进入Docker构建环境。
    • Ubuntu系统
      docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard:3.2
      
    • Windows系统(假设源码目录为D:OpenHarmony
      docker run -it -v D:OpenHarmony:/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard:3.2
      

编译源码(标准系统)

  1. 启动编译脚本
    执行docker run命令进入Docker容器后(此时位于/home/openharmony路径下),您可以通过如下编译脚本启动标准系统类设备(参考内存≥128MB)的编译。

    ./build.sh --product-name {product_name} --ccache
    

    {product_name}为当前版本支持的平台。例如,您要编译的产品是rk3568,那么您可以输入以下命令来启动编译:

    ./build.sh --product-name rk3568 --ccache
    
  2. 查看编译结果
    编译所生成的文件都归档在out/{device_name}/目录下,结果镜像输出在out/{device_name}/packages/phone/images/目录下。

icon-note.gif说明:
如需退出Docker,执行exit命令即可。这个命令会停止当前的Docker容器,并返回到您的操作系统。

基于HPM的Docker环境

docker_dist是一个[HPM]系统中的模板组件,能够帮助用户快速初始化HPM工程,利用docker镜像来快速编译OpenHarmony发行版,在很大程度上简化了编译前的环境配置。开发者在配置好Ubuntu和[hpm-cli]开发环境后,可以通过以下步骤来使用我们提供的Docker环境。

搭建Docker环境

  1. 初始化安装模板
    在任意工作目录中执行以下命令
    hpm init -t @ohos/docker_dist
    
  2. 修改publishAs
    因为获取到的是模板类型的包,要把包的类型改为需要的类型。 在当前目录下打开bundle.json文件,把"publishAs"字段的值由"template"改为"distribution"。

获取及编译源码

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

  • 自动安装docker(Ubuntu环境)
    以下命令可以帮助用户自动安装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.
    `HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿`
    
  • 自行安装docker(非Ubuntu环境)
    自行安装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}
    

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编译
    +关注

    关注

    0

    文章

    628

    浏览量

    32524
  • Docker
    +关注

    关注

    0

    文章

    443

    浏览量

    11672
  • 鸿蒙
    +关注

    关注

    55

    文章

    2143

    浏览量

    42282
  • OpenHarmony
    +关注

    关注

    24

    文章

    3485

    浏览量

    15432
收藏 人收藏

    评论

    相关推荐

    【HarmonyOS】使用Docker快速上手鸿蒙

    -indokcer/准备在机器上安装好Docker编译鸿蒙系统镜像打开终端执行以下命令123mkdir ~/OpenHarmonycd ~/Open
    发表于 10-12 16:18

    鸿蒙设备学习菜鸟指南》之【六、搭建编译环境

    `《鸿蒙设备学习菜鸟指南》之【六、搭建编译环境】[目录索引]六、搭建编译环境 我们同样首先使用最简化的方案,先入门,然后再配置复杂的方案,循
    发表于 10-30 14:24

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

    # 如何在win10家庭版上用docker快速搭建鸿蒙开发环境 (Building the Development Environment for HarmonyOS by Docker
    发表于 01-26 22:00

    OpenHarmony2.0 编译烧录

    教程视频链接:https://www.bilibili.com/video/BV1to4y1y76W [img]https://ss.csdn.net/p?[/img]手机鸿蒙2.0编译烧录教程1.环境
    发表于 06-14 10:00

    一条命令搞定全志XR806编译环境

    ,具体长这样:之前有很多刚接触它的朋友,被编译环境难住了。最近正好有空,干脆把相关代码和编译工具都做了配置和集成,做了个容器给大家。系统是Ubuntu 20.04,OpenHarmony
    发表于 03-30 16:11

    OpenHarmony 3.1 Release docker编译指南

    最新openharmony编译环境docker镜像,镜像较大,拉取时间较长,请耐心等待docker pull swr.cn-south-1.
    发表于 04-14 14:19

    【HarmonyOS HiSpark AI Camera试用连载 】之OpenHarmony 3.1编译固件测试游记

    具体明了,请查阅OpenHarmony 3.1 Release docker编译指南或#DAYU200体验官# OpenHarmony 3.1 Release
    发表于 04-23 20:40

    【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】+环境搭建2 docker环境搭建及编译代码

    前言:docker环境以前没用过,华为云提供了docker编译环境,拿来用。参考gitee上doc仓[url=https://gitee.
    发表于 05-29 17:16

    OpenHarmony开发——系统源码编译

    环境非常复杂,并且容易出错,这里将使用docker搭建编译环境,可以事半功倍02安装Docker1.首先删除可能已有的
    发表于 08-30 10:08

    OpenHarmony Docker移植实践

    上执行以下步骤,下载OpenAtom OpenHarmony(简称“OpenHarmony”)的源码并部署Docker编译环境。 1、安装g
    发表于 05-18 10:03

    Windows搭建OpenHarmony编译环境

    OpenHarmony编译呢?答案是:可以。所以,我们今天来尝试在Windows环境下搭建OpenHarmony编译
    发表于 08-16 16:07

    编译openharmony环境

    OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,当前的OpenHarmony源代码仅支持在Linux环境编译。 开源代码仓
    的头像 发表于 06-23 15:29 1294次阅读
    <b class='flag-5'>编译</b><b class='flag-5'>openharmony</b><b class='flag-5'>环境</b>

    Windows搭建OpenHarmony编译环境

    OpenHarmony编译呢?答案是:可以。所以,我们今天来尝试在Windows环境下搭建OpenHarmony编译
    的头像 发表于 08-09 08:26 1048次阅读
    Windows搭建<b class='flag-5'>OpenHarmony</b><b class='flag-5'>编译</b><b class='flag-5'>环境</b>

    OKT507-C_Docker编译环境指导_V1.0

    飞凌嵌入式OKT507-C开发板Docker编译环境指导
    发表于 08-15 17:24 10次下载

    鸿蒙OpenHarmony运行docker详细步骤

    1.环境和设备 系统版本: 3.2release(64 位) OpenHarmony 内核版本:5.10 标准系统设备: DAYU200 Docker:18.03.1 (64 位) sd 卡一张
    的头像 发表于 03-02 15:10 1375次阅读
    【<b class='flag-5'>鸿蒙</b>】<b class='flag-5'>OpenHarmony</b>运行<b class='flag-5'>docker</b>详细步骤