使用openUBMC社区提供的研发Docker镜像,利用Docker强大的能力,开发者可以跳过复杂的开发环境准备工作,直接开展业务开发。我们为不同操作系统的开发者提供了不同的安装Docker的教程。
- Mac/Ubuntu Desktop用户安装Docker,请参考安装Docker Desktop
- Windows用户安装Dokcer,请参考WSL2安装Ubuntu24.04虚拟使用Docker
- Linux发行版用户安装Docker,请参考安装Docker CE
Docker Engine安装指南请以官方文档为准https://docs.docker.com/engine/install/
基于Docker的开发环境搭建流程如下所示:
Docker安装
安装Docker Desktop
(Mac、Ubuntu Desktop用户推荐)
- 前往Docker官网下载
Docker Desktop
最新发行版:https://www.docker.com/products/docker-desktop/ - 根据安装程序引导进行安装。
- 安装成功后,可以打开自己操作系统的命令行,输入
docker ps
验证docker是否安装成功
> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
WSL2安装Ubuntu24.04
虚拟机使用Docker
(Windows用户推荐)
Windows系统也可按上述步骤安装Docker Desktop
使用Docker,但更推荐使用WSL2安装Ubuntu24.04,使用Ubuntu虚拟机安装Docker,以避免Windows存在的文件系统权限问题。WSL 是Windows提供的在同一计算机上同时访问 Windows 和 Linux 的强大功能。 通过适用于 Linux 的 Windows 子系统 (WSL),开发人员可以安装 Linux 发行版(例如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等),并直接在 Windows 上使用 Linux 应用程序、实用程序和 Bash 命令行工具,不用进行任何修改,也无需承担传统虚拟机或双启动设置的费用。
WSL2安装Ubuntu24.04
powershellwsl --set-default-version 2 wsl --install -d Ubuntu-24.04
如果在本步骤中出现错误,请确保您的操作系统支持WSL,具体请参考如何使用 WSL 在 Windows 上安装 Linux
重启系统后打开WSL设置Ubuntu系统账号密码
powershellwsl
设置root用户密码并设置root用户为WSL默认用户
bashsudo passwd root su root
在/etc/wsl.conf文件中添加内容
bash[user] default=root
重启WSL
powershellwsl --shutdown wsl
至此我们已经在windows上安装了Ubuntu环境,后续请在WSL-Ubuntu:24.04
虚拟机中参照安装Docker CE章节的内容安装Docker CE。
安装Docker CE
(Ubuntu、其他Linux发行版用户推荐)
Docker CE
是Docker在Linux上的版本。大部分Linux发行版本身的镜像仓中并没有直接的安装包,因此需要将Docker的镜像来源添加后才可安装。
此处以Ubuntu amd64架构作为例子,其他Linux发行版请参考Docker官方文档https://docs.docker.com/engine/install/
方式一:通过华为云开源镜像站进行安装(推荐)
安装流程来源于https://mirrors.huaweicloud.com/mirrorDetail/5ea14d84b58d16ef329c5c13
如果之前安装了非Docker CE的Docker引擎,则需要卸载非
Docker CE
的Docker引擎。通常可以通过执行docker version
来查看是否存在Server: Docker Engine - Community
字段,若存在则可跳过Docker CE
的安装。bashsudo apt-get remove docker docker-engine docker.io
安装Docker引擎的依赖
bashsudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
信任Docker的GPG公钥:
bashcurl -fsSL https://mirrors.huaweicloud.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
添加软件仓库:
bashsudo add-apt-repository "deb [arch=amd64] https://mirrors.huaweicloud.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
安装
Docker CE
bashsudo apt-get update sudo apt-get install docker-ce
安装成功后,可以打开命令行,输入
docker ps
验证Docker是否安装成功bash> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
方式二:通过Docker官方镜像站进行安装
当然您可以根据需求选用Docker官方的镜像进行安装。详情请参考Docker官网进行安装https://docs.docker.com/engine/install/ubuntu/
拉取openUBMC开发Docker镜像
在完成Docker安装后,可以通过拉取openUBMC的Docker镜像快速完成环境的搭建。
打开命令行,运行
docker pull
拉取镜像bashdocker pull swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.1
运行
docker image ls
查看镜像是否加载成功bash> docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu 24.04.1 -- 3 days ago 2.33GB
创建Container实例
在主机侧先创建工作文件夹,作为主机侧和Container侧共享的文件夹,方便代码和构建产物管理。以Linux环境为例:
bashmkdir /root/workspace
如果您使用的是windows+docker_desktop方案,您可以在windows电脑中创建一个类似的文件夹,便于代码的管理。
运行
docker run
创建Container实例openubmc
bashdocker run -d --privileged=true --mount type=bind,source=/root/workspace,target=/home/workspace --name openubmc swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.1 conan_server &
参数说明:
-d
让container在后台运行,需要构建BMC时可以复用Container,避免每次构建都重复创建Container.--privileged=true
使容器内的root用户真正拥有了root权限,否则容器中的root用户只是一个外部普通用户权限。--mount
将上述在宿主机创建的工作文件夹/root/workspace
与Container中的/home/workspace
链接作为同步文件夹。
通过
docker ps
查看创建的实例,可以看到container id
对应的Container状态bash> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7e83bed8fcfe swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.1 "conan_server" About a minute ago Up About a minute openubmc
通过
docker exec -it
进入Container进行操作bashdocker exec -it openubmc /bin/bash
bash> ls bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var
必要时,可输入
exit
退出Container。之后可通过docker exec -it
再次进入Containerbashexit
控制Container的运行状态
在重新启动os后,Container便会停止操作,此时可以通过docker start
重新拉起Container
docker start openubmc
执行完毕后,可以通过docker ps
查询状态
> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7e83bed8fcfe swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.1 "conan_server" About a minute ago Up About a minute openubmc
Container内部署远程conan服务
openUBMC升级包和组件构建需要依赖已构建的conan制品,这部分制品放置在远程conan服务器中,需要在Container内配置,以连接远程conan服务器
conan config init
conan remote add openubmc_dev "https://conan.openubmc.cn/conan_1/" false -f
conan user <openUBMC社区用户名> -p <openUBMC社区用户密码> -r openubmc_dev