OpenHarmony制作docker镜像

243 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第22天,点击查看活动详情

docker镜像导入:

生成公钥

ssh-keygen -t rsa -C "852851198@qq.com"  

image-20221024141016999

查看公钥

cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....

配置

git config --global user.name "坚果"
git config --global user.email "852851198@qq.com"
git config --global credential.helper store

安装码云repo工具,可以执行如下命令。

curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo  #如果没有权限,可下载至其他目录,并将其配置到环境变量中chmod a+x /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

获取源码

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

下载以下交叉编译工具链: 交叉编译工具链下载

新建tools文件夹

将压缩包放至这儿。然后执行以下命令将压缩包解压到根目录:

tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~

编辑.bashrc文件

vim ~/.bashrc

将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

export PATH=~/gcc_riscv32/bin:$PATH

image-20221024160731401

image-20221024160752795

生效环境变量。

source ~/.bashrc
​

Shell命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。

riscv32-unknown-elf-gcc -v

此时安装预编译工具包

# 预编译工具包:下载和编译时间较长,请耐心等待
./build/prebuilts_download.sh
​

编译代码:以下操作在docker环境内执行【耗时较长,请耐心等待】

编译标准版:编译过程较长,可能长达数小时

DAYU200: rk3568:

# 执行编译脚本:如首次编译不成功,且不是下述错误,可考虑再次运行
./build.sh --product-name rk3568 --ccache
​
# 如编译失败,提示curl目录下的问题,则可以如下处理,然后继续编译:
cd third_party/curl/ 
git stash
cd ../../
​
# 编译完成,显示如下信息:
[OHOS INFO] rk3568 build success
[OHOS INFO] cost time: 编译时间很长,作者环境初次4小时以上
​
# 编译完成后,刷机镜像文件位于:
# out/rk3568/packages/phone/images/

就可以烧录了

导出镜像

docker   export f8dc8c5569a7 > openharmony3.tar

root@f8dc8c5569a7:/home#

其中 > 表示输出到文件,openharmony3.tar为目标文件,f8dc8c5569a7是源容器ID(name)

image-20221024161756041

现在正在导出中。

使用 docker import 命令则可将这个镜像文件导入进来。

docker import  OpenHarmony-xxx.tar  oh:v1

import是导入镜像的意思

OpenHarmony-xxx.tar 是需要导入的镜像,

my_openharmony:v1: my_openharmony是镜像名称,v1是TAG

导入之后运行

docker run -it oh:v1 /bin/bash

image-20220917142135463