# glpi-project/docker-images architecture

> Architecture diagram of the GitHub repository glpi-project/docker-images, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/glpi-project/docker-images
- Repository: https://github.com/glpi-project/docker-images

## Overview

This repository packages GLPI and supporting containers for deployment. The main user workflow is to start the example Compose stack, have the GLPI container connect to its database and optionally install or update automatically, then serve the web interface and run background tasks. The tree identifies entrypoint, database-wait, install, and scheduler scripts; the README documents their user-facing behavior. Other service-image directories are included as a supporting image family, but their runtime wiring is not established by the available evidence.

Main entry points: [`glpi`](https://github.com/glpi-project/docker-images/tree/main/glpi) (GLPI Image), [`docker-compose.example.yml`](https://github.com/glpi-project/docker-images/blob/main/docker-compose.example.yml) (Compose Example), [`glpi/files/opt/glpi/entrypoint.sh`](https://github.com/glpi-project/docker-images/blob/main/glpi/files/opt/glpi/entrypoint.sh) (Container Entrypoint), [`githubactions-db`](https://github.com/glpi-project/docker-images/tree/main/githubactions-db) (MySQL Database)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_deployment["Deployment"]
  node_compose_example["Compose Example"]
end

subgraph group_glpi_runtime["GLPI Runtime"]
  node_glpi_image["GLPI Image"]
  node_entrypoint["Container Entrypoint<br/>[entrypoint.sh]"]
  node_db_wait["Database Wait<br/>[wait-for-db.sh]"]
  node_install["Auto Install<br/>[install.sh]"]
  node_runtime_state[("Persistent GLPI Data")]
  node_cron_worker["Cron Worker<br/>[cron-worker.sh]"]
  node_scheduler["Task Scheduler<br/>[scheduler.sh]"]
  node_custom_php["PHP Configuration<br/>[glpi.ini]"]
end

subgraph group_service_images["Service Images"]
  node_database[("MySQL Database")]
  node_memcached_image["Memcached Image"]
  node_redis_image["Redis Image"]
  node_ldap_image["OpenLDAP Image"]
  node_dovecot_image["Dovecot Image"]
  node_php_apache_image["PHP Apache Image"]
  node_glpi_apache_image["GLPI Apache Image"]
  node_php_coverage_image["PHP Coverage Image"]
end

node_operator(("Operator"))

node_operator -->|"starts stack"| node_compose_example
node_compose_example -->|"deploys"| node_glpi_image
node_compose_example -->|"deploys"| node_database
node_glpi_image -->|"starts"| node_entrypoint
node_entrypoint -->|"waits for"| node_db_wait
node_entrypoint -->|"installs or updates"| node_install
node_db_wait -->|"checks readiness"| node_database
node_glpi_image -->|"connects to"| node_database
node_glpi_image -->|"persists files"| node_runtime_state
node_glpi_image -->|"runs tasks"| node_cron_worker
node_cron_worker -->|"schedules jobs"| node_scheduler
node_operator -->|"customizes"| node_custom_php
node_custom_php -->|"configures PHP"| node_glpi_image

click node_compose_example "https://github.com/glpi-project/docker-images/blob/main/docker-compose.example.yml"
click node_glpi_image "https://github.com/glpi-project/docker-images/tree/main/glpi"
click node_entrypoint "https://github.com/glpi-project/docker-images/blob/main/glpi/files/opt/glpi/entrypoint.sh"
click node_db_wait "https://github.com/glpi-project/docker-images/blob/main/glpi/files/opt/glpi/entrypoint/wait-for-db.sh"
click node_install "https://github.com/glpi-project/docker-images/blob/main/glpi/files/opt/glpi/entrypoint/install.sh"
click node_database "https://github.com/glpi-project/docker-images/tree/main/githubactions-db"
click node_runtime_state "https://github.com/glpi-project/docker-images/tree/main/glpi"
click node_cron_worker "https://github.com/glpi-project/docker-images/blob/main/glpi/files/opt/glpi/cron-worker.sh"
click node_scheduler "https://github.com/glpi-project/docker-images/blob/main/glpi/files/opt/glpi/scheduler.sh"
click node_custom_php "https://github.com/glpi-project/docker-images/blob/main/glpi/files/etc/php/conf.d/glpi.ini"
click node_memcached_image "https://github.com/glpi-project/docker-images/tree/main/githubactions-memcached"
click node_redis_image "https://github.com/glpi-project/docker-images/tree/main/githubactions-redis"
click node_ldap_image "https://github.com/glpi-project/docker-images/tree/main/githubactions-openldap"
click node_dovecot_image "https://github.com/glpi-project/docker-images/tree/main/githubactions-dovecot"
click node_php_apache_image "https://github.com/glpi-project/docker-images/tree/main/githubactions-php-apache"
click node_glpi_apache_image "https://github.com/glpi-project/docker-images/tree/main/githubactions-glpi-apache"
click node_php_coverage_image "https://github.com/glpi-project/docker-images/tree/main/githubactions-php-coverage"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_compose_example toneBlue
class node_glpi_image,node_entrypoint,node_db_wait,node_install,node_runtime_state,node_cron_worker,node_scheduler,node_custom_php toneAmber
class node_database,node_memcached_image,node_redis_image,node_ldap_image,node_dovecot_image,node_php_apache_image,node_glpi_apache_image,node_php_coverage_image toneMint
class node_operator toneIndigo
```

## Components

### Deployment

- [Compose Example](https://github.com/glpi-project/docker-images/blob/main/docker-compose.example.yml): `docker-compose.example.yml`

### GLPI Runtime

- [GLPI Image](https://github.com/glpi-project/docker-images/tree/main/glpi): `glpi`
- [Container Entrypoint](https://github.com/glpi-project/docker-images/blob/main/glpi/files/opt/glpi/entrypoint.sh): `glpi/files/opt/glpi/entrypoint.sh`
- [Database Wait](https://github.com/glpi-project/docker-images/blob/main/glpi/files/opt/glpi/entrypoint/wait-for-db.sh): `glpi/files/opt/glpi/entrypoint/wait-for-db.sh`
- [Auto Install](https://github.com/glpi-project/docker-images/blob/main/glpi/files/opt/glpi/entrypoint/install.sh): `glpi/files/opt/glpi/entrypoint/install.sh`
- [Persistent GLPI Data](https://github.com/glpi-project/docker-images/tree/main/glpi): `glpi`
- [Cron Worker](https://github.com/glpi-project/docker-images/blob/main/glpi/files/opt/glpi/cron-worker.sh): `glpi/files/opt/glpi/cron-worker.sh`
- [Task Scheduler](https://github.com/glpi-project/docker-images/blob/main/glpi/files/opt/glpi/scheduler.sh): `glpi/files/opt/glpi/scheduler.sh`
- [PHP Configuration](https://github.com/glpi-project/docker-images/blob/main/glpi/files/etc/php/conf.d/glpi.ini): `glpi/files/etc/php/conf.d/glpi.ini`

### Service Images

- [MySQL Database](https://github.com/glpi-project/docker-images/tree/main/githubactions-db): `githubactions-db`
- [Memcached Image](https://github.com/glpi-project/docker-images/tree/main/githubactions-memcached): `githubactions-memcached`
- [Redis Image](https://github.com/glpi-project/docker-images/tree/main/githubactions-redis): `githubactions-redis`
- [OpenLDAP Image](https://github.com/glpi-project/docker-images/tree/main/githubactions-openldap): `githubactions-openldap`
- [Dovecot Image](https://github.com/glpi-project/docker-images/tree/main/githubactions-dovecot): `githubactions-dovecot`
- [PHP Apache Image](https://github.com/glpi-project/docker-images/tree/main/githubactions-php-apache): `githubactions-php-apache`
- [GLPI Apache Image](https://github.com/glpi-project/docker-images/tree/main/githubactions-glpi-apache): `githubactions-glpi-apache`
- [PHP Coverage Image](https://github.com/glpi-project/docker-images/tree/main/githubactions-php-coverage): `githubactions-php-coverage`

### Other components

- **Operator**

## Connections

- Operator → Compose Example: starts stack
- Compose Example → GLPI Image: deploys
- Compose Example → MySQL Database: deploys
- GLPI Image → Container Entrypoint: starts
- Container Entrypoint → Database Wait: waits for
- Container Entrypoint → Auto Install: installs or updates
- Database Wait → MySQL Database: checks readiness
- GLPI Image → MySQL Database: connects to
- GLPI Image → Persistent GLPI Data: persists files
- GLPI Image → Cron Worker: runs tasks
- Cron Worker → Task Scheduler: schedules jobs
- Operator → PHP Configuration: customizes
- PHP Configuration → GLPI Image: configures PHP
