You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
166 lines
4.6 KiB
166 lines
4.6 KiB
# Project to deploy GLPI with docker
|
|
|
|
  [](http://microbadger.com/images/diouxx/glpi "Get your own image badge on microbadger.com") 
|
|
|
|
# Table of Contents
|
|
- [Project to deploy GLPI with docker](#project-to-deploy-glpi-with-docker)
|
|
- [Table of Contents](#table-of-contents)
|
|
- [Introduction](#introduction)
|
|
- [Deploy with CLI](#deploy-with-cli)
|
|
- [Deploy GLPI](#deploy-glpi)
|
|
- [Deploy GLPI with existing database](#deploy-glpi-with-existing-database)
|
|
- [Deploy GLPI with database and persistence container data](#deploy-glpi-with-database-and-persistence-container-data)
|
|
- [Deploy a specific release of GLPI](#deploy-a-specific-release-of-glpi)
|
|
- [Deploy with docker-compose](#deploy-with-docker-compose)
|
|
- [Deploy without persistence data ( for quickly test )](#deploy-without-persistence-data--for-quickly-test)
|
|
- [Deploy with persistence data](#deploy-with-persistence-data)
|
|
- [mysql.env](#mysqlenv)
|
|
- [docker-compose .yml](#docker-compose-yml)
|
|
- [Environnment variables](#environnment-variables)
|
|
- [TIMEZONE](#timezone)
|
|
|
|
# Introduction
|
|
|
|
Install and run an GLPI instance with docker.
|
|
|
|
# Deploy with CLI
|
|
|
|
## Deploy GLPI
|
|
```sh
|
|
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
|
|
```sh
|
|
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
|
|
|
|
```sh
|
|
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
|
|
|
|
```sh
|
|
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 :
|
|
```sh
|
|
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 )
|
|
```yaml
|
|
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
|
|
```yaml
|
|
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
|
|
|
|
```sh
|
|
docker-compose up -d
|
|
```
|
|
|
|
# Environnment variables
|
|
|
|
## TIMEZONE
|
|
If you need to set timezone for Apache and PHP
|
|
|
|
From commande line
|
|
```sh
|
|
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
|
|
```yaml
|
|
environment:
|
|
TIMEZONE=Europe/Brussels
|
|
```
|