Exécuter GLPI sur docker

Pour obtenir un déploiement rapide, fiable et sécurisé sans le travail ni les coûts cachés liés à l'auto-hébergement, consultez GLPI Network Cloud.

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

  1. Choisissez le dossier de stockage de ces fichiers.

  2. Créez un fichier nommé docker-compose.yml

  3. Collez l'exemple de fichier YAML Docker Compose ci-dessous.

    1. Voici un exemple de fichier docker-compose.yml pour exécuter une pile de la dernière version stable de GLPI sur le port 80 avec une instance MySQL nommée db et une base de données nommée glpi on, port 3306

    2. Les 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"
  1. Créez un fichier nommé .env

  2. Collez les variables d'environnement ci-dessous.

GLPI_DB_HOST=db
GLPI_DB_PORT=3306
GLPI_DB_NAME=glpi
GLPI_DB_USER=glpi
GLPI_DB_PASSWORD=glpi
  1. Exécutez le composer

docker compose up -d

Une fois les conteneurs exécutés, vous pouvez accéder à GLPI à l'adresse http://localhost

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.

Si vous désactivez l'installation et la mise à jour automatiques, vous pouvez utiliser les informations d'identification définies dans le fichier env, afin de configurer l'instance GLPI.

  • GLPI_DB_HOST – Nom d'hôte

  • GLPI_DB_NAME – Base de données

  • GLPI_DB_USER – Utilisateur

  • GLPI_DB_PASSWORD – Mot de passe

Trouver le mot de passe racine MySQL

Veuillez noter que nous avons configuré un mot de passe root aléatoire pour la base de données MySQL, vous devrez donc vérifier les journaux du conteneur de base de données pour le trouver.

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.

  1. 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;"

Le mot de passe root sera celui que vous avez trouvé précédemment dans les journaux du conteneur de base de données.

N'oubliez pas de remplacer le <db_container_id> par l'ID du conteneur de base de données.

  1. 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_timezones

Remplacez le <glpi_container_id_> par l'ID du conteneur GLPI.

Volumes

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

Ce contenu vous a-t-il été utile ?