Project to deploy GLPI with docker
Table of Contents
- Project to deploy GLPI with docker
- Table of Contents
- Introduction
- Deploy with CLI
- Deploy with docker-compose
- Environnment variables
Introduction
Install and run an GLPI instance with docker.
Deploy with CLI
Deploy GLPI
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
Deploy GLPI with existing database
docker run --name glpi --link yourdatabase:mysql -p 80:80 -d diouxx/glpi
Deploy GLPI with database and persistence data
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 :)
Deploy a specific release of GLPI
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
Deploy with docker-compose
Deploy without persistence data ( for quickly test )
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"
Deploy with persistence data
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.env
MYSQL_ROOT_PASSWORD=diouxx
MYSQL_DATABASE=glpidb
MYSQL_USER=glpi_user
MYSQL_PASSWORD=glpi
docker-compose .yml
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
Environnment variables
TIMEZONE
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