- Project to deploy GLPI with docker
- Table of Contents
- Introduction
- Deploy with CLI
- Deploy with docker-compose
- Environnment variables
Install and run an GLPI instance with docker.
docker run --name mysql -e MYSQL_ROOT_PASSWORD=diouxx -e MYSQL_DATABASE=glpidb -e MYSQL_USER=glpi_user -e MYSQL_PASSWORD=glpi -d mysql:5.7.23
docker run --name glpi --link mysql:mysql -p 80:80 -d diouxx/glpi
docker run --name glpi --link yourdatabase:mysql -p 80:80 -d diouxx/glpi
For an usage on production environnement or daily usage, it's recommanded to use container with volumes to persistent data.
- First, create MySQL container with volume
docker run --name mysql -e MYSQL_ROOT_PASSWORD=diouxx -e MYSQL_DATABASE=glpidb -e MYSQL_USER=glpi_user -e MYSQL_PASSWORD=glpi --volume /var/lib/mysql:/var/lib/mysql -d mysql:5.7.23
- Then, create GLPI container with volume and link MySQL container
docker run --name glpi --link mysql:mysql --volume /var/www/html/glpi:/var/www/html/glpi -p 80:80 -d diouxx/glpi
Enjoy :)
Default, docker run will use the latest release of GLPI. For an usage on production environnement, it's recommanded to set specific release. Here an example for release 9.1.6 :
docker run --name glpi --hostname glpi --link mysql:mysql --volume /var/www/html/glpi:/var/www/html/glpi -p 80:80 --env "VERSION_GLPI=9.1.6" -d diouxx/glpi
version: "3.2"
services:
#Mysql Container
mysql:
image: mysql:5.7.23
container_name: mysql
hostname: mysql
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=glpidb
- MYSQL_USER=glpi_user
- MYSQL_PASSWORD=glpi
#GLPI Container
glpi:
image: diouxx/glpi
container_name : glpi
hostname: glpi
ports:
- "80:80"
To deploy with docker compose, you use docker-compose.yml and mysql.env file. You can modify mysql.env to personalize settings like :
- MySQL root password
- GLPI database
- GLPI user database
- GLPI user password
MYSQL_ROOT_PASSWORD=diouxx
MYSQL_DATABASE=glpidb
MYSQL_USER=glpi_user
MYSQL_PASSWORD=glpi
version: "3.2"
services:
#Mysql Container
mysql:
image: mysql:5.7.23
container_name: mysql
hostname: mysql
volumes:
- /var/lib/mysql:/var/lib/mysql
env_file:
- ./mysql.env
restart: always
#GLPI Container
glpi:
image: diouxx/glpi
container_name : glpi
hostname: glpi
ports:
- "80:80"
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /var/www/html/glpi/:/var/www/html/glpi
environment:
- TIMEZONE=Europe/Brussels
restart: always
To deploy, just run the following command on the same directory as files
docker-compose up -d
If you need to set timezone for Apache and PHP
From commande line
docker run --name glpi --hostname glpi --link mysql:mysql --volumes-from glpi-data -p 80:80 --env "TIMEZONE=Europe/Brussels" -d diouxx/glpi
From docker-compose
Modify this settings
environment:
TIMEZONE=Europe/Brussels