源码编译

云端管理套件源码编译介绍。

准备工作

  • 安装 Golang 工具并启用 Modules 管理

Golang 的最低版本要求为 1.13。 下载安装 Golang 可参考 golang.org 或者 golang.google.cn。我们现在采用 Go Modules 来管理依赖包,为了能够正常下载墙外的代码,可以参考 goproxy.baidu.com 来设置 GOPROXY,如下:

# 使用 go1.13 以上版本 
go env -w GONOPROXY=\*\*.baidu.com\*\*              ## 配置GONOPROXY环境变量,所有百度内代码,不走代理
go env -w GONOSUMDB=\*                              ## 配置GONOSUMDB,暂不支持sumdb索引
go env -w GOPROXY=https://goproxy.baidu.com         ## 配置GOPROXY,可以下载墙外代码
  • 安装 Docker Engine 并打开 Buildx 功能

Docker 的最低版本要求为 19.03,因为从该版本开始内置了 Buildx 功能,可用于制作多平台的镜像。 安装 Docker 可参考 docker.com/install,打开 Buildx 功能参考 github.com/docker/buildx

下载代码

Baetyl Github 下载代码,执行如下命令:

git clone https://github.com/baetyl/baetyl-cloud.git

编译 baetyl-cloud

进入 baetyl-cloud 项目目录,执行 make 即可编译出当前系统平台的 baetyl-cloud 主程序。

make 

注意:国内请设置GOPROXY,否则可能导致依赖包下载不下来,参考开头的准备工作

上述命令执行完后,baetyl-cloud 主程序会生成在项目的 output 目录下。

制作镜像

如果使用容器模式运行 baetyl-cloud,我们推荐使用正式发布的官方镜像。如果你想自己制作镜像,可以使用下面提供的命令,但是前提是打开了最前面的准备工作中提到的 Buildx 功能。

进入 baetyl-cloud 项目目录,执行 make image 即可生成当前系统平台的模块镜像。

make image

注意:为了制作多平台的镜像,我们采用了 docker 的 buildx,参考开头的准备工作

执行结束后,你可以执行 docker images 来查看生成的镜像。

docker images

REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
cloud                    git-be2c5a9         d70a7faf5443        About an hour ago   40.7MB

修改 scripts/demo/charts/baetyl-cloud/values.yaml 里的 image 配置项为上述镜像地址,执行 helm 安装,即可运行。