【问题标题】:Janusgraph docker connect to cassandra docker and elasticsearch docker by docker net, and expose 8182 to host machine?Janusgraph docker 通过 docker net 连接到 cassandra docker 和 elasticsearch docker,并将 8182 暴露给主机?
【发布时间】:2020-06-06 04:17:43
【问题描述】:

我正在使用 janusgraph。我已经建立了一个janusgraph图像。我想要的是运行这个janusgraph容器,同时连接cassandra容器和elasticsearch容器,最后将8182端口暴露给宿主机。

我的问题是:如何让janusgraph通过ip和9042端口连接cassandra,通过ip和9200/9300端口连接elasticsearch?

【问题讨论】:

    标签: docker elasticsearch kubernetes cassandra janusgraph


    【解决方案1】:

    首先,您需要EXPOSE Dockerfile 中的这些端口。您还需要在 Dockerfile 中为 Cassandra 集群端点定义 ARG

    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
    

    然后在您的入口点文件中使用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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多