janusgraph docker通过docker net连接到cassandra docker和elasticsearch docker,并将8182暴露到主机上?

yhuiod9q  于 2021-06-13  发布在  Cassandra
关注(0)|答案(1)|浏览(406)

我和janusgraph一起工作。我已经建立了一个janusgraph图像。我想要的是运行这个janusgraph容器,同时连接到cassandra容器和elasticsearch容器,最后将8182端口暴露给主机。
我的问题是:如何让janusgraph通过ip和9042端口连接到cassandra,如何让elasticsearch通过ip和9200/9300端口连接到cassandra?

5ssjco0h

5ssjco0h1#

首先,你会想 EXPOSE dockerfile中的那些端口。dockerfile是您还需要定义 ARG 对于cassandra集群端点。
dockerfile文件:


# argument for the Cassandra endpoints, with a default value of 127.0.0.1

ARG CASSANDRA_ENDPOINT_LIST=127.0.0.1

# Exposing required ports 8182(gremlin) 9042(Cassandra) 9200(ElasticSearch)

EXPOSE 8182 9042 9200

然后执行regex/替换为 sed 在入口点文件中:

sed -i "s/hostname=127\.0\.0\.1/hostname=${CASSANDRA_ENDPOINT_LIST}/g" ${JANUSGRAPH_CONF}/gremlin-server/janusgraph-cql-es-server.properties

构建docker容器时,传递 CASSANDRA_ENDPOINT_LIST 作为生成参数:

--build-arg CASSANDRA_ENDPOINT_LIST=1.2.3.4,1.2.3.5

这个例子是针对cassandra的,但是类似的东西也适用于elasticsearch。
注意:您也可以在同一个容器中构建所有3个,这样就不需要通过 --build-arg . 不过,您需要足够的ram来支持janus、elastic和cassandra的jvm。

相关问题