鸿蒙OpenHarmony—Docker移植实践

Docker 是一个开源的软件项目,可以在 Linux 操作系统上提供一层额外的抽象,让用户程序部署在一个相对隔离的运行环境,并提供自动管理机制。

图片

需要额外指出的是,Docker 并不等于容器(containers),Docker 只是容器的一种,其他种类的容器还有 Kata container,Rocket container 等。

编译环境搭建

准备一个可以运行 Docker 的虚拟机操作系统,推荐 ubuntu 或者 openEuler 的发行版。

搭建环境:在 ubuntu 虚拟机上执行以下步骤,下载 OpenHarmony 的源码并部署 Docker 编译环境。

①安装 gitee repo 工具

mkdir ~/bin
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o ~/bin/repo 
chmod a+x ~/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

②获取 OpenHarmony 源码

在 ubuntu 虚拟机上创建源码目录:

mkdir /home/openharmony
cd /home/openharmory

使用 repo 命令获取 OpenHarmony v3.2 release 源码:

repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-3.2-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

以上步骤完成后,可以获取到 OpenHarmony 编译所需的完整的源码,代码目录结构如下图所示:

图片

③获取 Docker 编译环境

独立 Docker 编译环境,适用于编译轻量和小型系统/标准系统。

获取 OpenHarmony Docker 编译镜像:

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

此 Docker 编译环境较大,请耐心等待下载完成。进入源码根目录,启动并进入 Docker 编译环境。

执行以下命令:

cd /home/openharmory
docker run --name ohos_build -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0

命令参数说明:-v X:Y 将宿主机的 X 目录挂载到容器的 Y 目录下。

将当前源码所在目录,挂载到容器编译环境的 /home/openharmony 目录下。

安装编译依赖:通过上面步骤进入容器的 shell 后,切换到 /home/openharmony 路径,执行脚本下载 OpenHarmony 编译所依赖的组件:

cd /home/openharmony
./build/prebuilts_download.sh

此处需要下载的编译依赖较多,请耐心等待下载完成。

至此 OpenHarmony Docker 编译环境准备完毕,在执行编译动作之前,需要完成 OpenHarmony kernel 特性的修改,否则 Docker 无法在 OpenHarmony 系统上正常运行。

kernel 配置修改

如何判断源码使用默认配置编译后生成的 kernel 是否满足 Docker 的运行依赖呢?

开源社区存在检查工具,可以帮助我们完成这个任务,大家可以自行获取此工具。

在此我们直接进入 kernel 配置的修改环节。

修改 OpenHarmony kernel 配置文件,开启 Docker 运行所依赖的内核功能。

需要修改的配置文件位置如下:

kernel/linux/config/linux-5.10/arch/arm64/configs/rk3568_standard_defconfig

针对 kernel 特性的修改,主要是开启 OpenHarmony 内核中 namespace、cgroup、network、overlay filesystem 等功能。

在配置文件的末尾追加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值