如何扩展代码块执行环境版本
由于 HAP 默认代码块执行环境使用的 Nodejs(10.18)、Python(3.6) 版本相对比较老,从 v5.1 开始,将支持扩展更多的执行环境版本。
目前除了提供默认镜像:nocoly/hap-command:node1018-python36
还提供相对较新的镜像:nocoly/hap-command:node2011-python312
考虑到兼容性问题,产品设计上支持多个版本切换使用。当然,如果不想使用老版本,也可以彻底切换到新版本。
对于代码块依赖库扩展问题,依然参考 如何扩展代码块依赖库,只是对应的路径进行调整:
python3.6
改成 python3.12
、node-10.18.0
改成 node-20.11
- 多版本共存模式
- 切换到新版本模式
-
下载镜像(离线包下载)
docker pull nocoly/hap-command:node2011-python312
-
修改配置文件,添加如下配置
commandv2:
image: nocoly/hap-command:node2011-python312
environment:
<<: *app-environment -
创建代码块服务扩展配置文件,如:
/data/hap/script/volume/workflow/application-www-ext.properties
,文件内容如下:md.grpc.client.MDCommandService[0].address=static://commandv2:9098
md.grpc.client.MDCommandService[0].nodeVersion=20.11
md.grpc.client.MDCommandService[0].pythonVersion=3.12 -
挂载配置文件,在 app 服务的 volumes 中添加如下配置:
volumes:
- ./volume/workflow/application-www-ext.properties:/usr/local/MDPrivateDeployment/workflow/application-www-ext.properties
- ./volume/workflow/application-www-ext.properties:/usr/local/MDPrivateDeployment/workflowconsumer/application-www-ext.properties
- ./volume/workflow/application-www-ext.properties:/usr/local/MDPrivateDeployment/workflowintegration/application-www-ext.properties -
重启服务,最终效果如下:
注:此模式下可能存在历史代码块兼容性问题,如果风险不可控,不建议直接切换。
-
下载镜像(离线包下载)
docker pull nocoly/hap-command:node2011-python312
-
修改配置文件,将 command 服务对应的镜像版本号改为:
node2011-python312
-
重启服务即可