How it works - LEOGLLRD/GraphDB-Docker GitHub Wiki

Project Structur

This project is based on 4 containers :

  • GraphDB
  • Python
  • MySQL
  • Init

Containers

All containers except Init are launched in rootless.

Init

This container is the first launched, and is responsible for configuring all necessary permissions within the volume, ensuring seamless interaction with other containers. If it functions correctly, it will display the GraphDB admin's password and automatically stop once its task is complete. It remains active until all other containers have finalized their initialization.

GraphDB

This container is the second launched with MySQL one, and contains the GraphDB server. No more and no less.

MySQL

This container, is the second launched with GraphDB one, and it contains a Bitnami MySQL server. It's initialized with a GraphDB user. And every .sql file you put inside the volume path /graphdb-project/mysql/init.

Python

This container is the last launched, and is used firstly to initialize the GraphDB server through its API. Finally it's used to create no repository on GraphDB with Django.

And an external volume containing a specifying structur that is given in each branch (except Main because it's deprecated).

Difference between branches

The several-services-dockercompose and no-depends_on branches both produce the same outcome. The key distinction lies in their compatibility with different Docker versions: several-services-dockercompose utilizes healthchecks, which function only in recent Docker versions, while no-depends_on omits them, allowing it to work with older versions.