tree: 6778bba9b33624fd1fe0e86b6992aca42e2e1ec8 [path history] [tgz]
  1. conf/
  2. example/
  3. scripts/
  4. docker-entrypoint.sh
  5. README.md
hugegraph-server/hugegraph-dist/docker/README.md

Deploy Hugegraph server with docker

Note:

  1. The docker image of hugegraph is a convenience release, not official distribution artifacts from ASF. You can find more details from ASF Release Distribution Policy.

  2. Recommend to use release tag(like 1.2.0) for the stable version. Use latest tag to experience the newest functions in development.

1. Deploy

We can use docker to quickly start an inner HugeGraph server with RocksDB in the background.

  1. Using docker run

    Use docker run -itd --name=graph -p 8080:8080 hugegraph/hugegraph to start hugegraph server.

  2. Using docker compose

    Certainly we can only deploy server without other instance. Additionally, if we want to manage other HugeGraph-related instances with server in a single file, we can deploy HugeGraph-related instances via docker-compose up -d. The docker-compose.yaml is as below:

    version: '3'
    services:
      graph:
        image: hugegraph/hugegraph
        ports:
          - 8080:8080
    

2. Create Sample Graph on Server Startup

If you want to preload some (test) data or graphs in container(by default), you can set the env PRELOAD=ture

If you want to customize the preloaded data, please mount the groovy scripts (not necessary).

  1. Using docker run

    Use docker run -itd --name=graph -p 8080:8080 -e PRELOAD=true -v /path/to/yourScript:/hugegraph/scripts/example.groovy hugegraph/hugegraph to start hugegraph server.

  2. Using docker compose

    We can also use docker-compose up -d to quickly start. The docker-compose.yaml is below. example.groovy is a pre-defined script. If needed, we can mount a new example.groovy to preload different data:

    version: '3'
    services:
      graph:
        image: hugegraph/hugegraph
        environment:
          - PRELOAD=true
        volumes:
          - /path/to/yourscript:/hugegraph/scripts/example.groovy
        ports:
          - 8080:8080
    
  3. Using start-hugegraph.sh

    If you deploy HugeGraph server without docker, you can also pass arguments using -p, like this: bin/start-hugegraph.sh -p true.

3. Enable Authentication

  1. Using docker run

    Use docker run -itd --name=graph -p 8080:8080 -e AUTH=true -e PASSWORD=123456 hugegraph/hugegraph to enable the authentication and set the password with -e AUTH=true -e PASSWORD=123456.

  2. Using docker compose

    Similarly, we can set the environment variables in the docker-compose.yaml:

    version: '3'
    services:
      server:
        image: hugegraph/hugegraph
        container_name: graph
        ports:
          - 8080:8080
        environment:
          - AUTH=true
          - PASSWORD=123456
    

4. Running Open-Telemetry-Collector

CAUTION:

The docker-compose-trace.yaml utilizes Grafana and Grafana-Tempo, both of them are licensed under AGPL-3.0, you should be aware of and use them with caution. Currently, we mainly provide this template for everyone to test

  1. Start Open-Telemetry-Collector

    cd hugegraph-server/hugegraph-dist/docker/example
    docker-compose -f docker-compose-trace.yaml -p hugegraph-trace up -d
    
  2. Active Open-Telemetry-Agent

    ./start-hugegraph.sh -y true
    
  3. Stop Open-Telemetry-Collector

    cd hugegraph-server/hugegraph-dist/docker/example
    docker-compose -f docker-compose-trace.yaml -p hugegraph-trace stop
    
  4. References