Exécuter GLPI sur docker
GLPI fournit une image et une pile Docker officielles via Dockerhub, utilisables pour les déploiements sur tout système exécutant Docker.
Si vous souhaitez signaler un problème.
Démarrage rapide de GLPI
Utilisez ce guide de démarrage rapide pour exécuter GLPI sur sa dernière version en local. Consultez ci-dessous les instructions pour exécuter GLPI en production. Si Docker est installé et opérationnel, téléchargez la dernière image Docker :
Afin de déployer GLPI et MySQL Stack, après l'installation de Docker, deux fichiers sont nécessaires avant de récupérer et d'exécuter l'image.
Un fichier YAML Docker Compose et un fichier .env contenant les variables d'environnement utilisées par Docker Compose pour une configuration correcte.
Hôte de la base de données
Port de l'hôte de la base de données
Nom de la base de données GLPI
Utilisateur de la base de données GLPI
Mot de passe de la base de données GLPI
Choisissez le dossier de stockage de ces fichiers.
Créez un fichier nommé
docker-compose.ymlCollez l'exemple de fichier YAML Docker Compose ci-dessous.
Voici un exemple de fichier
docker-compose.ymlpour exécuter une pile de la dernière version stable de GLPI sur le port80avec une instance MySQL nomméedbet une base de données nomméeglpion, port3306Les volumes seront créés à l'emplacement où se trouve Docker Compose.
services:
glpi:
image: "glpi/glpi:latest"
restart: "unless-stopped"
volumes:
- "./storage/glpi:/var/glpi:rw"
env_file: .env # Pass environment variables from .env file to the container
depends_on:
db:
condition: service_healthy
ports:
- "80:80"
db:
image: "mysql"
restart: "unless-stopped"
volumes:
- "./storage/mysql:/var/lib/mysql"
environment:
MYSQL_RANDOM_ROOT_PASSWORD: "yes"
MYSQL_DATABASE: ${GLPI_DB_NAME}
MYSQL_USER: ${GLPI_DB_USER}
MYSQL_PASSWORD: ${GLPI_DB_PASSWORD}
healthcheck:
test: mysqladmin ping -h 127.0.0.1 -u $$MYSQL_USER --password=$$MYSQL_PASSWORD
start_period: 5s
interval: 5s
timeout: 5s
retries: 10
expose:
- "3306"Il est possible d'ajouter des configurations personnalisées de PHP, si vous souhaitez par exemple augmenter la taille des upload, augmenter la limite de la mémoire PHP, modifier l'expiration du cache de session, etc.
Créer un fichier (custom-config.ini for example) qui sera chargé par PHP avec les option que vous souhaitez modifier
Ajouter dans la section volume de votre fichier de configuration Docker, une ligne supplémentaire pour que votre fichier PHP soit chargé :
"/path/to/your/custom-config.ini:/usr/local/etc/php/conf.d/custom-config.ini:r"
Créez un fichier nommé
.envCollez les variables d'environnement ci-dessous.
Change the values to your needs if needed.
GLPI_DB_HOST=db
GLPI_DB_PORT=3306
GLPI_DB_NAME=glpi
GLPI_DB_USER=glpi
GLPI_DB_PASSWORD=glpiExécutez le composer
docker compose up -dUne fois les conteneurs exécutés, vous pouvez accéder à GLPI à l'adresse http://localhost
GLPI s'installera ou se mettra à jour automatiquement si nécessaire.
Vous pouvez désactiver ce comportement en définissant les variables d'environnement ci-dessous sur true dans le fichier .env
GLPI_SKIP_AUTOINSTALL=true– GLPI ne s'installe pas automatiquement et vous devez exécuter l'assistant ou les commandes de la console pour l'installer manuellement.GLPI_SKIP_AUTOUPDATE=true– GLPI ne se met pas à jour automatiquement et vous devez exécuter l'assistant ou les commandes de la console pour le mettre à jour manuellement.
GLPI_DB_HOST– Nom d'hôteGLPI_DB_NAME– Base de donnéesGLPI_DB_USER– UtilisateurGLPI_DB_PASSWORD– Mot de passe
Trouver le mot de passe racine MySQL
docker logs <db_container_id>Activer la prise en charge des fuseaux horaires
Pour initialiser la prise en charge des fuseaux horaires pour GLPI, nous devons d'abord accorder à l'utilisateur glpi l'accès à la table mysql.time_zone.
Une fois le conteneur Docker en cours d'exécution, exécutez la commande suivante
docker exec -it <db_container_id> mysql -u root -p -e "GRANT SELECT ON mysql.time_zone_name TO 'glpi'@'%';FLUSH PRIVILEGES;"Exécutez la commande suivante pour initialiser les fuseaux horaires sur le conteneur GLPI :
docker exec -it <glpi_container_id> /var/www/glpi/bin/console database:enable_timezonesVolumes
Par défaut, l'image glpi/glpi fournit un volume contenant ses répertoires config, marketplace et files. Pour la version GLPI 10.0.x, le répertoire marketplace n'est pas déclaré dans le volume car son chemin d'accès est différent. Vous pouvez créer manuellement un volume pour le chemin /var/www/glpi/marketplace si vous prévoyez de l'utiliser.
Balises
Afin que les utilisateurs disposent de différentes options pour tester et déployer GLPI dans différentes versions, même si les dernières versions sont toujours recommandées, le Docker Composer officiel de GLPI vous permet de choisir entre différentes balises contenant différentes versions de déploiement GLPI.
Les balises GLPI se trouvent dans le fichier Docker Compose, sur la ligne contenant le nom de l'image. Vous pouvez alors utiliser l'image suivante : "glpi/glpi:11.0.0-nightly" pour installer GLPI 11 version en dev sur Docker.
Voir plus de balises ici : https://hub.docker.com/r/glpi/glpi/tags
Mis à jour