如何在Docker镜像中配置TinkerPop以支持字符串类型自定义顶点ID?
Docker部署Gremlin Server配置字符串ID的实现方案
针对tinkerpop/gremlin-server:3.4.1版本,有两种常用方案实现自定义字符串ID支持:
方法1:通过docker-compose环境变量注入(最简方案)
Gremlin Server支持通过Java系统参数覆盖默认配置,你可以直接在docker-compose.yml中通过JAVA_OPTS环境变量传入IDManager配置,无需修改本地配置文件:
version: '3.8' services: gremlin-server: image: tinkerpop/gremlin-server:3.4.1 ports: - "8182:8182" environment: # 传入顶点ID管理器配置,设置为ANY支持任意类型自定义ID JAVA_OPTS: "-Dgremlin.tinkergraph.vertexIdManager=ANY -Dgremlin.tinkergraph.edgeIdManager=ANY"
说明:如果只需要顶点支持字符串ID,可删除
-Dgremlin.tinkergraph.edgeIdManager=ANY参数。
方法2:挂载自定义配置文件(适合多配置修改场景)
如果需要同时修改多项TinkerGraph配置,可采用挂载本地配置文件的方式:
- 第一步:从官方镜像中提取默认
tinkergraph.properties配置文件,在文件末尾添加如下配置:gremlin.tinkergraph.vertexIdManager=ANY gremlin.tinkergraph.edgeIdManager=ANY - 第二步:在docker-compose.yml中配置文件挂载,让容器启动时加载你的自定义配置:
version: '3.8' services: gremlin-server: image: tinkerpop/gremlin-server:3.4.1 ports: - "8182:8182" volumes: # 将本地的自定义配置文件挂载到容器对应路径 - ./your-local-path/tinkergraph.properties:/opt/gremlin-server/conf/tinkergraph-empty.properties
说明:默认镜像中gremlin-server启动时默认加载的TinkerGraph配置文件为
conf/tinkergraph-empty.properties,直接挂载覆盖该文件即可生效。
配置验证
服务启动后可执行如下命令验证配置是否生效:
// 插入字符串ID的顶点 g.addV('user').property(id, 'user_001').property('name', 'test') // 查询该顶点,确认返回结果正常则配置生效 g.V('user_001').valueMap(true)
内容的提问来源于stack exchange,提问作者Will
相关产品推荐
相关产品推荐

