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.