• 源码安装 Baetyl
    • 准备工作
    • 下载代码
    • 编译 Baetyl 和模块
      • 制作模块镜像
      • 安装 Baetyl 和示例
      • 运行 Baetyl 和示例
      • 卸载

    源码安装 Baetyl

    相比于快速安装 Baetyl,你可以采用源码编译的方式来使用 Baetyl 最新的功能。

    准备工作

    • 安装 Golang 工具并启用 Modules 管理Golang 的最低版本要求为 1.12。 下载安装 Golang 可参考 golang.org 或者 golang.google.cn。我们现在采用 Go Modules 来管理依赖包,可以参考 goproxy.io 来启用。

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

    下载代码

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

    1. go get github.com/baetyl/baetyl

    编译 Baetyl 和模块

    进入 Baetyl 项目目录,执行 make 即可编译出当前系统平台的 Baetyl 主程序和模块程序。

    1. cd $GOPATH/src/github.com/baetyl/baetyl
    2. # 当前平台,所有模块
    3. make # make all

    上述命令执行完后,Baetyl 主程序和模块程序会生成在项目的 output 目录下,会按照平台分开放置。

    如果需要指定平台和模块,参考如下命令:

    1. # 所有平台,所有模块
    2. make PLATFORMS=all
    3. # 指定的平台,指定的模块
    4. make PLATFORMS="linux/amd64 linux/arm64" MODULES="agent hub"

    如下命令可以重新编译 Baetyl 主程序和模块程序。

    1. # 当前平台,所有模块
    2. make rebuild
    3. # 所有平台,所有模块
    4. make rebuild PLATFORMS=all
    5. # 指定的平台,指定的模块
    6. make rebuild PLATFORMS="linux/amd64 linux/arm64" MODULES="agent hub"

    注意: 上述编译命令会自动读取 Git 的 revision 和 tag 作为程序的版本,所以在执行命令前请先提交或者移除本地的修改。

    制作模块镜像

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

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

    1. cd $GOPATH/src/github.com/baetyl/baetyl
    2. # 当前平台,所有模块
    3. make image
    4. # 当前平台,指定的模块
    5. make image MODULES="agent hub"

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

    1. docker images
    2.  
    3. REPOSITORY TAG IMAGE ID CREATED SIZE
    4. baetyl-function-python3 git-e8fe527 12b669a36a9c 54 minutes ago 202MB
    5. baetyl-function-python2 git-e8fe527 278e5c465e17 About an hour ago 162MB
    6. baetyl-hub git-e8fe527 abd5bef8ba92 2 hours ago 16.9MB
    7. baetyl-agent git-e8fe527 7ac8dfecdb63 2 hours ago 18MB
    8. baetyl-function-manager git-e8fe527 e6564cd87768 2 hours ago 16.7MB
    9. baetyl-remote-mqtt git-e8fe527 0daa114b968d 2 hours ago 16MB
    10. baetyl-timer git-e8fe527 88a408e4512a 2 hours ago 16MB
    11. baetyl-function-node8 git-e8fe527 d7bf1abb6d24 4 days ago 221MB

    如果你需要制作多平台的镜像,你必须指定镜像发布的仓库地址和 push 参数,因为目前 Buildx 不支持将镜像的 manifest 加载到本地的镜像空间。

    1. # 所有平台,所有模块
    2. make image PLATFORMS=all XFLAGS=--push REGISTRY=<your docker image register>/
    3. # 指定的平台,指定的模块
    4. make image PLATFORMS="linux/amd64 linux/arm64" MODULES="agent hub" XFLAGS=--push REGISTRY=<your docker image register>/

    安装 Baetyl 和示例

    使用如下命令安装 Baetyl 和示例,默认安装到 /usr/local

    1. cd $GOPATH/src/github.com/baetyl/baetyl
    2. sudo make install # 会同时安装 docker 容器模式的示例
    3. sudo make install MODE=native # 会同时安装 native 进程模式的示例

    你也可以指定安装的目录,例如项目下的 output

    1. cd $GOPATH/src/github.com/baetyl/baetyl
    2. make install PREFIX=output # 会同时安装 docker 容器模式的示例
    3. make install MODE=native PREFIX=output # 会同时安装 native 进程模式的示例

    在 Darwin 平台上,需要设置 Baetyl 使用到的 /usr/local/var 目录,允许挂载到容器内。

    ../_images/docker-path-mount-on-mac.pngMount path on Mac

    运行 Baetyl 和示例

    如果 Baetyl 和示例已经安装到默认路径:/usr/local

    1. sudo baetyl start

    如果 Baetyl 和示例已经安装到了指定路径,例如项目下的 output

    1. sudo ./output/bin/baetyl start

    注意:启动方式根据安装方式的不同而不同,即,若选择 docker 运行模式安装,则上述命令会以 docker 容器模式运行 Baetyl。

    提示

    • baetyl 启动后,可通过 ps -ef | grep "baetyl" 查看 baetyl 是否已经成功运行,并确定启动时所使用的参数。通过查看日志确定更多信息,日志文件默认存放在工作目录下的 var/log/baetyl 目录中。
    • docker 容器模式运行,可通过 docker ps 或者 docker stats 命令查看容器运行状态。
    • 如需使用自己的镜像,需要修改应用配置中的模块和函数的 image,指定自己的镜像。
    • 如需自定义配置,请按照 配置解读 中的内容进行相关设置。

    卸载

    如果 Baetyl 安装在默认目录 /usr/local

    1. sudo make uninstall

    如果 Baetyl 安装在指定目录下,例如项目下的 output

    1. make uninstall PREFIX=output