Update de GLPI

Ajout de la conf traefik
passage à mariadb
This commit is contained in:
root
2025-09-03 00:34:56 +02:00
parent 7185af5c2d
commit 2afc324e6b
6 changed files with 61 additions and 29 deletions

View File

@@ -1,9 +1,11 @@
version: '3.5'
services:
web:
web: &glpi_base
container_name: glpi-web
build: web-builder
restart: always
networks:
- proxy
- default
volumes:
- ./etc/:/etc/glpi/
- ./files/:/var/lib/glpi/
@@ -21,34 +23,46 @@ services:
depends_on:
- db
- redis
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.tohttps.redirectscheme.scheme=https"
- "traefik.http.middlewares.tohttps.redirectscheme.permanent=true"
- "traefik.http.middlewares.tohttps.redirectscheme.port=443"
- "traefik.http.routers.glpi-http.rule=Host(`glpi.blorand.org`)"
- "traefik.http.routers.glpi-http.entrypoints=web"
- "traefik.http.routers.glpi-http.middlewares=tohttps"
- "traefik.http.routers.glpi-https.rule=Host(`glpi.blorand.org`)&&!PathPrefix(`/front/inventory.php`)"
- "traefik.http.routers.glpi-https.entrypoints=websecure"
- "traefik.http.routers.glpi-https.tls=true"
- "traefik.http.routers.glpi-inventory-https.rule=Host(`glpi.blorand.org`)&&PathPrefix(`/front/inventory.php`)"
- "traefik.http.routers.glpi-inventory-https.entrypoints=websecure"
- "traefik.http.routers.glpi-inventory-https.tls=true"
- "traefik.http.routers.glpi-inventory-https.middlewares=glpi-inventory-auth"
cron:
<<: *glpi_base
container_name: glpi-cron
image : glpi-web:latest
restart: always
networks:
- default
volumes:
- ./etc/:/etc/glpi/
- ./files/:/var/lib/glpi/
- ./log/:/var/log/glpi/
- /etc/localtime:/etc/localtime:ro
env_file:
- ./mysql_settings.ini
environment:
- PHP_MEMORY_LIMIT=256M
- PHP_UPLOAD_MAX_FILESIZE=20M
- PHP_POST_MAX_SIZE=40M
- PHP_SESSION_GC_MAXLIFETIME=14400
- PHP_DATE_TIMEZONE=Europe/Paris
ports: []
entrypoint: /etc/service/cron
depends_on:
- db
- web
labels: []
db:
image: mariadb
image: mariadb:lts
container_name: glpi-db
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
restart: always
networks:
- default
env_file:
- ./mysql_settings.ini
volumes:
@@ -57,8 +71,18 @@ services:
redis:
container_name: glpi-redis
image: redis:latest
image: redis:alpine
volumes:
- ./cache:/data
restart: "always"
networks:
- default
networks:
default:
ipam:
config:
- subnet: 172.18.4.0/24
proxy:
name: proxy
external: true

View File

@@ -1,14 +1,14 @@
FROM alpine
MAINTAINER Benoit LORAND <benoit.lorand@blorand.org>
LABEL BUILDER="Benoit LORAND <benoit.lorand@blorand.org>"
WORKDIR /root
ENV GLPI_CONFIG_DIR=/etc/glpi
ENV GLPI_VAR_DIR=/var/lib/glpi
ENV GLPI_LOG_DIR=/var/log/glpi
ENV GLPI_VERSION=10.0.14
ENV FIELDS_VERSION=1.21.8
ENV DATAINJECTION_VERSION=2.13.5
ENV GLPIINVENTORY_VERSION=1.3.5
ENV GLPI_VERSION=10.0.19
ENV FIELDS_VERSION=1.21.23
ENV DATAINJECTION_VERSION=2.14.2
ENV GLPIINVENTORY_VERSION=1.5.3
RUN \
@@ -75,7 +75,6 @@ chmod 600 /etc/crontabs/apache && \
rm -f /var/www/html/* /root/CAS-1.3.8.tgz /root/glpi-${GLPI_VERSION}.tgz /root/glpi-fields-${FIELDS_VERSION}.tar.bz2 /root/glpi-datainjection-${DATAINJECTION_VERSION}.tar.bz2 /root/glpi-glpiinventory-${GLPIINVENTORY_VERSION}.tar.bz2 && \
rm -rf /tmp/* /var/tmp/*
COPY logo.png /var/www/glpi/pics/logo.png
EXPOSE 80
WORKDIR /var/www/glpi
ENTRYPOINT ["/etc/service/glpi"]

View File

@@ -1,7 +1,7 @@
<IfModule remoteip_module>
RemoteIPHeader X-Forwarded-For
RemoteIPProxiesHeader X-Forwarded-By
RemoteIPInternalProxy 172.23.0.0/24
RemoteIPInternalProxy 172.18.4.0/24 192.168.77.254
</IfModule>
<IfModule log_config_module>

4
web-builder/service/cron Normal file → Executable file
View File

@@ -5,6 +5,8 @@ msglog green "Starting Cron..."
/etc/service/php
# Touch cron files to fix 'NUMBER OF HARD LINKS > 1' issue. See https://github.com/phusion/baseimage-docker/issues/198
chown -R apache:apache /var/www/glpi /etc/glpi /var/lib/glpi /var/log/glpi
for i in /var/www/glpi /etc/glpi /var/lib/glpi /var/log/glpi ; do
find $i ! -user apache -exec chown apache:apache {} \; || true
done
touch -c /etc/crontab /etc/cron.*/* /var/spool/cron/crontabs/*
exec /usr/sbin/crond -f -L /dev/stdout

19
web-builder/service/glpi Normal file → Executable file
View File

@@ -20,7 +20,7 @@ msglog() {
}
waiting_for_db() {
while ! mysqlshow -h db -uroot -p${MYSQL_ROOT_PASSWORD} 2>&1 | grep "^| ${MYSQL_DATABASE}" > /dev/null 2>&1 ; do
while ! mariadb-show -h db -uroot -p${MYSQL_ROOT_PASSWORD} 2>&1 | grep "^| ${MYSQL_DATABASE}" > /dev/null 2>&1 ; do
msglog red "Waiting for mysql database initilization..."
sleep 5
done
@@ -43,18 +43,21 @@ if [ ! -e "/etc/glpi/config_db.php" ] ; then
cd /root
cp -r /root/glpi_template/etc/. /etc/glpi/.
cp -r /root/glpi_template/files/. /var/lib/glpi/.
mysql --host=db --user=root --password=${MYSQL_ROOT_PASSWORD} << EOF
mariadb --host=db --user=root --password=${MYSQL_ROOT_PASSWORD} << EOF
use mysql;
GRANT SELECT ON time_zone_name TO '${MYSQL_USER}'@'%';
EOF
cd /var/www/glpi
php82 bin/console db:install --config-dir=${GLPI_CONFIG_DIR} -L fr_FR -H db -d ${MYSQL_DATABASE} -u ${MYSQL_USER} -p ${MYSQL_PASSWORD} -n
rm install/install.php
chown -R apache:apache /var/www/glpi /etc/glpi /var/lib/glpi /var/log/glpi
for i in /var/www/glpi /etc/glpi /var/lib/glpi /var/log/glpi ; do
find $i ! -user apache -exec chown apache:apache {} \; || true
done
echo "${GLPI_VERSION}" > /etc/glpi/glpi_actual_version
echo "${FIELDS_VERSION}" > /etc/glpi/fields_actual_version
echo "${DATAINJECTION_VERSION}" > /etc/glpi/datainjection_actual_version
echo "${GLPIINVENTORY_VERSION}" > /etc/glpi/glpiinventory_actual_version
php bin/console database:enable_timezones
msglog green "Initialazing complete..."
else
msglog green "GLPI is already initialized"
@@ -63,7 +66,9 @@ else
DATAINJECTION_ACTUAL_VERSION=$(test -e /etc/glpi/datainjection_actual_version && cat /etc/glpi/datainjection_actual_version)
GLPIINVENTORY_ACTUAL_VERSION=$(test -e /etc/glpi/glpiinventory_actual_version && cat /etc/glpi/glpiinventory_actual_version)
if [ "${GLPI_ACTUAL_VERSION}" = "${GLPI_VERSION}" -a "${FIELDS_ACTUAL_VERSION}" = "${FIELDS_VERSION}" -a "${DATAINJECTION_ACTUAL_VERSION}" = "${DATAINJECTION_VERSION}" -a "${GLPIINVENTORY_ACTUAL_VERSION}" = "${GLPIINVENTORY_VERSION}" ] ; then
chown -R apache:apache /var/www/glpi /etc/glpi /var/lib/glpi /var/log/glpi
for i in /var/www/glpi /etc/glpi /var/lib/glpi /var/log/glpi ; do
find $i ! -user apache -exec chown apache:apache {} \; || true
done
[ -e "/var/www/glpi/install/install.php" ] && rm /var/www/glpi/install/install.php
msglog green "GLPI already up2date"
start_apache
@@ -74,12 +79,14 @@ else
php82 bin/console glpi:maintenance:enable -n
php82 bin/console glpi:plugin:deactivate --all # -n
rm /var/www/glpi/install/install.php
php82 bin/console db:update --config-dir=${GLPI_CONFIG_DIR} -n && \
php82 bin/console database:update --config-dir=${GLPI_CONFIG_DIR} -n && \
( echo "${GLPI_VERSION}" > /etc/glpi/glpi_actual_version ; \
echo "${FIELDS_VERSION}" > /etc/glpi/fields_actual_version ; \
echo "${DATAINJECTION_VERSION}" > /etc/glpi/datainjection_actual_version ; \
echo "${GLPIINVENTORY_VERSION}" > /etc/glpi/glpiinventory_actual_version )
php82 bin/console glpi:maintenance:disable -n
chown -R apache:apache /var/www/glpi /etc/glpi /var/lib/glpi /var/log/glpi
for i in /var/www/glpi /etc/glpi /var/lib/glpi /var/log/glpi ; do
find $i ! -user apache -exec chown apache:apache {} \; || true
done
fi
start_apache

0
web-builder/service/php Normal file → Executable file
View File