使用dev镜像进行fed和havenask的开发 · alibaba/havenask 您所在的位置:网站首页 fed进程 使用dev镜像进行fed和havenask的开发 · alibaba/havenask

使用dev镜像进行fed和havenask的开发 · alibaba/havenask

2024-04-14 14:25| 来源: 网络整理| 查看: 265

使用dev镜像进行fed和havenask的开发

在havenask开发中,运行集测用例,需要连接远程的fed集群。

如果fed本身的调试,需要频繁编译fed代码,那么每次都重新编译一个新的docker镜像话,效率会比较低。

以下介绍一种修改了fed代码后,能快速拉起fed的开发模式。

由于fed要运行havenask引擎,所以必须在docker容器中运行。

所以fed提供了以下2种dev镜像:

registry.cn-hangzhou.aliyuncs.com/havenask/fed:dev.beta2 :附带了fed编译环境和havenask runtime环境

registry.cn-hangzhou.aliyuncs.com/havenask/fed:dev_all.beta2 :附带了fed编译环境和havenask编译环境。

使用方式

克隆仓库:

git clone https://github.com/alibaba/havenask-federation.git cd havenask-federation

执行启动镜像命令:

cd elastic-fed/script ./create_container.sh #示例命令: ./create_container.sh test registry.cn-hangzhou.aliyuncs.com/havenask/fed:dev.beta2

容器启动后,进入容器命令:

.//sshme #示例命令: ./test/sshme

然后此时,本地的havenask-federation目录跟镜像里的/home/havenask/havenask-federation目录是映射关系,所以在本地修改的代码,可以在镜像直接编译。

在容器中,运行fed的命令如下:

cd elastic-fed ./gradlew run

如果要以debug模式运行fed,命令如下:

./gradlew run --debug-jvm

这样就能按文章《调试fed和havenask》介绍的attach方式,远程debug。

通过./gradlew run命令,会重新编译fed的代码,使用最新的代码运行fed。

havenask开发

如果有havenask的开发需求,则运行的容器要使用dev_all镜像,在create_container.sh命令使用的镜像替换成dev_all镜像。

在本地将havenask的代码目录,拷贝到havenask-federation目录下,这样可以在容器中看到havenask目录的代码。havenask编译方式请参见:快速开始-1.0.0-beta#编译代码

这里有几个注意事项:

请确保编译的机器内存在15G以上,mac编译时需调整Docker容器资源上限(包括CPU、Memory、Swap等),具体路径:Docker Desktop->setting->Resources。

请确保cpu位8core以上,不然编译比较慢。

编译好的ha_install目录在当前目录,要替换根目录下的/ha_install目录。

如果gradlew run的fed进程异常退出,可能未关闭havenask进程,需要手动关闭,通过ps aux | grep sap_server_d找到对应的进程pid进行kill



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有