Docker

Visit the Docker homepage for detailed information about using Docker.

Graph.Build Docker images can be found on Docker Hub and the Amazon ECR Public Gallery.

  1. Open a terminal, and execute the following command to create a folder to store all data and configuration.

mkdir ~/graphbuild
  1. Create a file, in your new directory, called .env , and write the following content, replacing fields where necessary.

N.B. Contact your Graph.Build representative for license keys.

TRANSFORMER_LICENSE={provided-by-Graph.Build}
GRAPHBUILD_DIRECTORY={the-directory-created-in-the-previous-step}
STUDIO_LICENSE={provided-by-Graph.Build}
  1. Create another file, in the same directory, called docker-compose.yml and insert the following.

services:
  ui-react:
    image: public.ecr.aws/graph.build/studio-ui:latest
    ports:
      - "9600:80"
    environment:
      REACT_APP_NODEAPP_HOST: http://localhost:9601

  ui-node:
    image: public.ecr.aws/graph.build/studio-node:latest
    ports:
      - "9601:9601"
    environment:
      NODE_ENV: production
      DATABASE_CLIENT: better-sqlite3
      STUDIO_LICENSE: ${STUDIO_LICENSE}
    volumes:
      - ${GRAPHBUILD_DIRECTORY}/sqlite-db:/app/dist/database/sqlite

  sql-transformer: 
    image: public.ecr.aws/graph.build/sql-transformer:latest
    ports:
      - "9602:8080"
    environment:
      TRANSFORMER_RUN_STANDALONE: false
      TRANSFORMER_LICENSE: ${TRANSFORMER_LICENSE}
      TRANSFORMER_DIRECTORY: file:///var/work/sql-transformer/
      PG_GRAPH: neptune-gremlin
      PROPERTY_GRAPH_MODE: true
      KAFKA_BROKERS: broker:9092
    volumes:
      - ${GRAPHBUILD_DIRECTORY}:/var/work

  semi-structured-transformer:
    image: public.ecr.aws/graph.build/semi-structured-transformer:latest
    ports:
      - "9603:8080"
    environment:
      TRANSFORMER_RUN_STANDALONE: false
      TRANSFORMER_LICENSE: ${TRANSFORMER_LICENSE}
      TRANSFORMER_DIRECTORY: file:///var/work/semi-structured-transformer/
      KAFKA_BROKERS: broker:9092
    volumes:
      - ${GRAPHBUILD_DIRECTORY}:/var/work

  graph_writer:
    image: public.ecr.aws/graph.build/graph-writer:latest
    ports:
      - "9610:8080"
    environment:
      DELETE_SOURCE: true
      TRANSFORMER_RUN_STANDALONE: false
      GRAPH_DATABASE_ENDPOINT: http://host.docker.internal:12110/datastores/default/sparql
      GRAPH_DATABASE_TYPE: rdfox
      TRANSFORMER_LICENSE: ${TRANSFORMER_LICENSE}
      KAFKA_BROKERS: broker:9092
    volumes:
      - ${GRAPHBUILD_DIRECTORY}:/var/work

  zookeeper:
    image: confluentinc/cp-zookeeper:7.3.2
    container_name: zookeeper
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000

  broker:
    image: confluentinc/cp-kafka:7.3.2
    container_name: broker
    ports:
      - "9092:9092"
    depends_on:
      - zookeeper
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker:9092
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1

volumes:
  sqlite-db:

The Compose file above launches an instance of GraphBuild Studio along with its Node.js backend API. It also starts one container each for the SQL Transformer, Semi-Structured Transformer, and Graph Writer.

Kafka and Zookeeper are included for integration, enabling automatic ingestion: when a transformation is executed, the resulting graph data files are automatically picked up by the Graph Writer and written to the graph database of your choice. In this instance it is RDFox. Please see the Graph Writer Configuration page to connect to a different database

  1. The contents of your new directory should be as follows:

~/graphbuild/.env
~/graphbuild/docker-compose.yml 
  1. From the same directory, execute the following command

docker compose up
  1. Navigate to http://localhost:9600 to see the login page:

Login to the Studio using the default values for the Super Admin user:

Username: admin
Password: password

See "Configure Users" to change default credentials and administer multiple users.

Last updated