mirror of
https://github.com/DiouxX/docker-glpi.git
synced 2026-11-07 15:32:33 -05:00
Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d6c567820b | ||
|
|
6a50b6e787 |
No files matched your search
@@ -1 +0,0 @@
|
||||
docker-compose-test.yml
|
||||
+12
-29
@@ -1,41 +1,24 @@
|
||||
#On choisit une debian
|
||||
FROM debian:11.1
|
||||
|
||||
LABEL org.opencontainers.image.authors="github@diouxx.be"
|
||||
FROM debian:latest
|
||||
|
||||
MAINTAINER DiouxX "github@diouxx.be"
|
||||
|
||||
#Ne pas poser de question à l'installation
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
#Installation d'apache et de php7.4 avec extension
|
||||
#Installation d'apache et de php5 avec extension
|
||||
RUN apt update \
|
||||
&& apt install --yes --no-install-recommends \
|
||||
&& apt -y install \
|
||||
apache2 \
|
||||
php7.4 \
|
||||
php7.4-mysql \
|
||||
php7.4-ldap \
|
||||
php7.4-xmlrpc \
|
||||
php7.4-imap \
|
||||
php5 \
|
||||
php5-mysql \
|
||||
php5-ldap \
|
||||
php5-xmlrpc \
|
||||
php5-imap \
|
||||
curl \
|
||||
php7.4-curl \
|
||||
php7.4-gd \
|
||||
php7.4-mbstring \
|
||||
php7.4-xml \
|
||||
php7.4-apcu-bc \
|
||||
php-cas \
|
||||
php7.4-intl \
|
||||
php7.4-zip \
|
||||
php7.4-bz2 \
|
||||
cron \
|
||||
wget \
|
||||
ca-certificates \
|
||||
jq \
|
||||
libldap-2.4-2 \
|
||||
libldap-common \
|
||||
libsasl2-2 \
|
||||
libsasl2-modules \
|
||||
libsasl2-modules-db \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
php5-curl \
|
||||
php5-gd \
|
||||
wget
|
||||
|
||||
#Copie et execution du script pour l'installation et l'initialisation de GLPI
|
||||
COPY glpi-start.sh /opt/
|
||||
|
||||
@@ -1,206 +1,49 @@
|
||||
# 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)
|
||||
- [Default accounts](#default-accounts)
|
||||
- [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 data](#deploy-glpi-with-database-and-persistence-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 a specific release](#deploy-a-specific-release)
|
||||
- [Deploy with persistence data](#deploy-with-persistence-data)
|
||||
- [mariadb.env](#mariadbenv)
|
||||
- [docker-compose .yml](#docker-compose-yml)
|
||||
- [Environnment variables](#environnment-variables)
|
||||
- [TIMEZONE](#timezone)
|
||||
|
||||
# Introduction
|
||||
[](http://microbadger.com/images/diouxx/glpi "Get your own version badge on microbadger.com") [](http://microbadger.com/images/diouxx/glpi "Get your own image badge on microbadger.com")
|
||||
|
||||
Install and run an GLPI instance with docker
|
||||
|
||||
## Default accounts
|
||||
|
||||
More info in the 📄[Docs](https://glpi-install.readthedocs.io/en/latest/install/wizard.html#end-of-installation)
|
||||
|
||||
| Login/Password | Role |
|
||||
|-------------------- |------------------- |
|
||||
| glpi/glpi | admin account |
|
||||
| tech/tech | technical account |
|
||||
| normal/normal | "normal" account |
|
||||
| post-only/postonly | post-only account |
|
||||
|
||||
# Deploy with CLI
|
||||
|
||||
## Deploy GLPI
|
||||
## Deploy GLPI without database
|
||||
```sh
|
||||
docker run --name mariadb -e MARIADB_ROOT_PASSWORD=diouxx -e MARIADB_DATABASE=glpidb -e MARIADB_USER=glpi_user -e MARIADB_PASSWORD=glpi -d mariadb:10.7
|
||||
docker run --name glpi --link mariadb:mariadb -p 80:80 -d diouxx/glpi
|
||||
docker run --name glpi -p 80:80 -d diouxx/glpi
|
||||
```
|
||||
|
||||
## Deploy GLPI with existing database
|
||||
```sh
|
||||
docker run --name glpi --link yourdatabase:mariadb -p 80:80 -d diouxx/glpi
|
||||
docker run --name glpi --link yourdatabase:mysql -p 80:80 -d diouxx/glpi
|
||||
```
|
||||
|
||||
## Deploy GLPI with database and persistence data
|
||||
## Deploy GLPI with database and persistance container data (Recommended)
|
||||
|
||||
For an usage on production environnement or daily usage, it's recommanded to use container with volumes to persistent data.
|
||||
For an usage on production environnement or daily usage, it's recommanded to use a data container for persistent data.
|
||||
|
||||
* First, create MariaDB container with volume
|
||||
* First, create data container
|
||||
|
||||
```sh
|
||||
docker run --name mariadb -e MARIADB_ROOT_PASSWORD=diouxx -e MARIADB_DATABASE=glpidb -e MARIADB_USER=glpi_user -e MARIADB_PASSWORD=glpi --volume /var/lib/mysql:/var/lib/mysql -d mariadb:10.7
|
||||
docker create --name glpi-data --volume /var/www/html/glpi:/var/www/html/glpi busybox /bin/true
|
||||
```
|
||||
|
||||
* Then, create GLPI container with volume and link MariaDB container
|
||||
* Then, you link your data container with GLPI container
|
||||
|
||||
```sh
|
||||
docker run --name glpi --link mariadb:mariadb --volume /var/www/html/glpi:/var/www/html/glpi -p 80:80 -d diouxx/glpi
|
||||
docker run --name glpi --hostname glpi --link mysql:mysql --volumes-from glpi-data -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 mariadb:mariadb --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 with docker-compose
|
||||
To deploy with docker compose, you use *docker-compose.yml* and *mysql.env* file.
|
||||
You can modify **_mysql.env_** to personalize settings like :
|
||||
|
||||
## Deploy without persistence data ( for quickly test )
|
||||
```yaml
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
#MariaDB Container
|
||||
mariadb:
|
||||
image: mariadb:10.7
|
||||
container_name: mariadb
|
||||
hostname: mariadb
|
||||
environment:
|
||||
- MARIADB_ROOT_PASSWORD=password
|
||||
- MARIADB_DATABASE=glpidb
|
||||
- MARIADB_USER=glpi_user
|
||||
- MARIADB_PASSWORD=glpi
|
||||
|
||||
#GLPI Container
|
||||
glpi:
|
||||
image: diouxx/glpi
|
||||
container_name : glpi
|
||||
hostname: glpi
|
||||
ports:
|
||||
- "80:80"
|
||||
```
|
||||
|
||||
## Deploy a specific release
|
||||
|
||||
```yaml
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
#MariaDB Container
|
||||
mariadb:
|
||||
image: mariadb:10.7
|
||||
container_name: mariadb
|
||||
hostname: mariadb
|
||||
environment:
|
||||
- MARIADB_ROOT_PASSWORD=password
|
||||
- MARIADB_DATABASE=glpidb
|
||||
- MARIADB_USER=glpi_user
|
||||
- MARIADB_PASSWORD=glpi
|
||||
|
||||
#GLPI Container
|
||||
glpi:
|
||||
image: diouxx/glpi
|
||||
container_name : glpi
|
||||
hostname: glpi
|
||||
environment:
|
||||
- VERSION_GLPI=9.5.6
|
||||
ports:
|
||||
- "80:80"
|
||||
```
|
||||
|
||||
## Deploy with persistence data
|
||||
|
||||
To deploy with docker compose, you use *docker-compose.yml* and *mariadb.env* file.
|
||||
You can modify **_mariadb.env_** to personalize settings like :
|
||||
|
||||
* MariaDB root password
|
||||
* MySQL root password
|
||||
* GLPI database
|
||||
* GLPI user database
|
||||
* GLPI user password
|
||||
|
||||
|
||||
### mariadb.env
|
||||
```
|
||||
MARIADB_ROOT_PASSWORD=diouxx
|
||||
MARIADB_DATABASE=glpidb
|
||||
MARIADB_USER=glpi_user
|
||||
MARIADB_PASSWORD=glpi
|
||||
```
|
||||
|
||||
### docker-compose .yml
|
||||
```yaml
|
||||
version: "3.2"
|
||||
|
||||
services:
|
||||
#MariaDB Container
|
||||
mariadb:
|
||||
image: mariadb:10.7
|
||||
container_name: mariadb
|
||||
hostname: mariadb
|
||||
volumes:
|
||||
- /var/lib/mysql:/var/lib/mysql
|
||||
env_file:
|
||||
- ./mariadb.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 mariadb:mariadb --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
|
||||
```
|
||||
+33
-25
@@ -1,28 +1,36 @@
|
||||
version: "3.2"
|
||||
#Mysql Persitance Data
|
||||
mysql-data:
|
||||
image: busybox
|
||||
container_name: mysql-data
|
||||
volumes:
|
||||
- /var/lib/mysql:/var/lib/mysql
|
||||
|
||||
services:
|
||||
#MariaDB Container
|
||||
mariadb:
|
||||
image: mariadb:10.7
|
||||
container_name: mariadb
|
||||
hostname: mariadb
|
||||
volumes:
|
||||
- /var/lib/mysql:/var/lib/mysql
|
||||
env_file:
|
||||
- ./mariadb.env
|
||||
restart: always
|
||||
#Mysql Container
|
||||
mysql:
|
||||
image: mysql
|
||||
container_name: mysql
|
||||
hostname: mysql
|
||||
volumes_from:
|
||||
- mysql-data
|
||||
env_file:
|
||||
- ./mysql.env
|
||||
|
||||
#GLPI Pesitance Data
|
||||
glpi-data:
|
||||
image: busybox
|
||||
container_name: glpi-data
|
||||
volumes:
|
||||
- /var/www/html/glpi:/var/www/html/glpi
|
||||
|
||||
#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
|
||||
glpi:
|
||||
image: diouxx/glpi
|
||||
container_name : glpi
|
||||
hostname: glpi
|
||||
ports:
|
||||
- "80:80"
|
||||
links:
|
||||
- mysql:mysql
|
||||
volumes_from:
|
||||
- glpi-data
|
||||
restart: always
|
||||
+4
-18
@@ -1,17 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
#Controle du choix de version ou prise de la latest
|
||||
[[ ! "$VERSION_GLPI" ]] \
|
||||
&& VERSION_GLPI=$(curl -s https://api.github.com/repos/glpi-project/glpi/releases/latest | grep tag_name | cut -d '"' -f 4)
|
||||
|
||||
if [[ -z "${TIMEZONE}" ]]; then echo "TIMEZONE is unset";
|
||||
else
|
||||
echo "date.timezone = \"$TIMEZONE\"" > /etc/php/7.4/apache2/conf.d/timezone.ini;
|
||||
echo "date.timezone = \"$TIMEZONE\"" > /etc/php/7.4/cli/conf.d/timezone.ini;
|
||||
fi
|
||||
|
||||
SRC_GLPI=$(curl -s https://api.github.com/repos/glpi-project/glpi/releases/tags/${VERSION_GLPI} | jq .assets[0].browser_download_url | tr -d \")
|
||||
TAR_GLPI=$(basename ${SRC_GLPI})
|
||||
VERSION_GLPI=9.1.2
|
||||
SRC_GLPI=https://github.com/glpi-project/glpi/releases/download/${VERSION_GLPI}/glpi-${VERSION_GLPI}.tgz
|
||||
TAR_GLPI=glpi-${VERSION_GLPI}.tgz
|
||||
FOLDER_GLPI=glpi/
|
||||
FOLDER_WEB=/var/www/html/
|
||||
|
||||
@@ -19,7 +10,7 @@ FOLDER_WEB=/var/www/html/
|
||||
if !(grep -q "TLS_REQCERT" /etc/ldap/ldap.conf)
|
||||
then
|
||||
echo "TLS_REQCERT isn't present"
|
||||
echo -e "TLS_REQCERT\tnever" >> /etc/ldap/ldap.conf
|
||||
echo -e "TLS_REQCERT\tnever" >> /etc/ldap/ldap.conf
|
||||
fi
|
||||
|
||||
#Téléchargement et extraction des sources de GLPI
|
||||
@@ -36,11 +27,6 @@ fi
|
||||
#Modification du vhost par défaut
|
||||
echo -e "<VirtualHost *:80>\n\tDocumentRoot /var/www/html/glpi\n\n\t<Directory /var/www/html/glpi>\n\t\tAllowOverride All\n\t\tOrder Allow,Deny\n\t\tAllow from all\n\t</Directory>\n\n\tErrorLog /var/log/apache2/error-glpi.log\n\tLogLevel warn\n\tCustomLog /var/log/apache2/access-glpi.log combined\n</VirtualHost>" > /etc/apache2/sites-available/000-default.conf
|
||||
|
||||
#Add scheduled task by cron and enable
|
||||
echo "*/2 * * * * www-data /usr/bin/php /var/www/html/glpi/front/cron.php &>/dev/null" >> /etc/cron.d/glpi
|
||||
#Start cron service
|
||||
service cron start
|
||||
|
||||
#Activation du module rewrite d'apache
|
||||
a2enmod rewrite && service apache2 restart && service apache2 stop
|
||||
|
||||
|
||||
Reference in new issue
Block a user