Update de GLPI
Ajout de la conf traefik passage à mariadb
This commit is contained in:
@@ -1,9 +1,11 @@
|
|||||||
version: '3.5'
|
|
||||||
services:
|
services:
|
||||||
web:
|
web: &glpi_base
|
||||||
container_name: glpi-web
|
container_name: glpi-web
|
||||||
build: web-builder
|
build: web-builder
|
||||||
restart: always
|
restart: always
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
- default
|
||||||
volumes:
|
volumes:
|
||||||
- ./etc/:/etc/glpi/
|
- ./etc/:/etc/glpi/
|
||||||
- ./files/:/var/lib/glpi/
|
- ./files/:/var/lib/glpi/
|
||||||
@@ -21,34 +23,46 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
- redis
|
- 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:
|
cron:
|
||||||
|
<<: *glpi_base
|
||||||
container_name: glpi-cron
|
container_name: glpi-cron
|
||||||
image : glpi-web:latest
|
networks:
|
||||||
restart: always
|
- default
|
||||||
volumes:
|
volumes:
|
||||||
- ./etc/:/etc/glpi/
|
- ./etc/:/etc/glpi/
|
||||||
- ./files/:/var/lib/glpi/
|
- ./files/:/var/lib/glpi/
|
||||||
- ./log/:/var/log/glpi/
|
- ./log/:/var/log/glpi/
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
env_file:
|
ports: []
|
||||||
- ./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
|
|
||||||
entrypoint: /etc/service/cron
|
entrypoint: /etc/service/cron
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
- web
|
- web
|
||||||
|
labels: []
|
||||||
|
|
||||||
db:
|
db:
|
||||||
image: mariadb
|
image: mariadb:lts
|
||||||
container_name: glpi-db
|
container_name: glpi-db
|
||||||
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
|
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
|
||||||
restart: always
|
restart: always
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
env_file:
|
env_file:
|
||||||
- ./mysql_settings.ini
|
- ./mysql_settings.ini
|
||||||
volumes:
|
volumes:
|
||||||
@@ -57,8 +71,18 @@ services:
|
|||||||
|
|
||||||
redis:
|
redis:
|
||||||
container_name: glpi-redis
|
container_name: glpi-redis
|
||||||
image: redis:latest
|
image: redis:alpine
|
||||||
volumes:
|
volumes:
|
||||||
- ./cache:/data
|
- ./cache:/data
|
||||||
restart: "always"
|
restart: "always"
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.18.4.0/24
|
||||||
|
proxy:
|
||||||
|
name: proxy
|
||||||
|
external: true
|
||||||
|
@@ -1,14 +1,14 @@
|
|||||||
FROM alpine
|
FROM alpine
|
||||||
MAINTAINER Benoit LORAND <benoit.lorand@blorand.org>
|
LABEL BUILDER="Benoit LORAND <benoit.lorand@blorand.org>"
|
||||||
|
|
||||||
WORKDIR /root
|
WORKDIR /root
|
||||||
ENV GLPI_CONFIG_DIR=/etc/glpi
|
ENV GLPI_CONFIG_DIR=/etc/glpi
|
||||||
ENV GLPI_VAR_DIR=/var/lib/glpi
|
ENV GLPI_VAR_DIR=/var/lib/glpi
|
||||||
ENV GLPI_LOG_DIR=/var/log/glpi
|
ENV GLPI_LOG_DIR=/var/log/glpi
|
||||||
ENV GLPI_VERSION=10.0.14
|
ENV GLPI_VERSION=10.0.19
|
||||||
ENV FIELDS_VERSION=1.21.8
|
ENV FIELDS_VERSION=1.21.23
|
||||||
ENV DATAINJECTION_VERSION=2.13.5
|
ENV DATAINJECTION_VERSION=2.14.2
|
||||||
ENV GLPIINVENTORY_VERSION=1.3.5
|
ENV GLPIINVENTORY_VERSION=1.5.3
|
||||||
|
|
||||||
|
|
||||||
RUN \
|
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 -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/*
|
rm -rf /tmp/* /var/tmp/*
|
||||||
|
|
||||||
COPY logo.png /var/www/glpi/pics/logo.png
|
EXPOSE 80
|
||||||
|
|
||||||
WORKDIR /var/www/glpi
|
WORKDIR /var/www/glpi
|
||||||
ENTRYPOINT ["/etc/service/glpi"]
|
ENTRYPOINT ["/etc/service/glpi"]
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
<IfModule remoteip_module>
|
<IfModule remoteip_module>
|
||||||
RemoteIPHeader X-Forwarded-For
|
RemoteIPHeader X-Forwarded-For
|
||||||
RemoteIPProxiesHeader X-Forwarded-By
|
RemoteIPProxiesHeader X-Forwarded-By
|
||||||
RemoteIPInternalProxy 172.23.0.0/24
|
RemoteIPInternalProxy 172.18.4.0/24 192.168.77.254
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
||||||
<IfModule log_config_module>
|
<IfModule log_config_module>
|
||||||
|
4
web-builder/service/cron
Normal file → Executable file
4
web-builder/service/cron
Normal file → Executable file
@@ -5,6 +5,8 @@ msglog green "Starting Cron..."
|
|||||||
/etc/service/php
|
/etc/service/php
|
||||||
|
|
||||||
# Touch cron files to fix 'NUMBER OF HARD LINKS > 1' issue. See https://github.com/phusion/baseimage-docker/issues/198
|
# 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/*
|
touch -c /etc/crontab /etc/cron.*/* /var/spool/cron/crontabs/*
|
||||||
exec /usr/sbin/crond -f -L /dev/stdout
|
exec /usr/sbin/crond -f -L /dev/stdout
|
||||||
|
19
web-builder/service/glpi
Normal file → Executable file
19
web-builder/service/glpi
Normal file → Executable file
@@ -20,7 +20,7 @@ msglog() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
waiting_for_db() {
|
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..."
|
msglog red "Waiting for mysql database initilization..."
|
||||||
sleep 5
|
sleep 5
|
||||||
done
|
done
|
||||||
@@ -43,18 +43,21 @@ if [ ! -e "/etc/glpi/config_db.php" ] ; then
|
|||||||
cd /root
|
cd /root
|
||||||
cp -r /root/glpi_template/etc/. /etc/glpi/.
|
cp -r /root/glpi_template/etc/. /etc/glpi/.
|
||||||
cp -r /root/glpi_template/files/. /var/lib/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;
|
use mysql;
|
||||||
GRANT SELECT ON time_zone_name TO '${MYSQL_USER}'@'%';
|
GRANT SELECT ON time_zone_name TO '${MYSQL_USER}'@'%';
|
||||||
EOF
|
EOF
|
||||||
cd /var/www/glpi
|
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
|
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
|
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 "${GLPI_VERSION}" > /etc/glpi/glpi_actual_version
|
||||||
echo "${FIELDS_VERSION}" > /etc/glpi/fields_actual_version
|
echo "${FIELDS_VERSION}" > /etc/glpi/fields_actual_version
|
||||||
echo "${DATAINJECTION_VERSION}" > /etc/glpi/datainjection_actual_version
|
echo "${DATAINJECTION_VERSION}" > /etc/glpi/datainjection_actual_version
|
||||||
echo "${GLPIINVENTORY_VERSION}" > /etc/glpi/glpiinventory_actual_version
|
echo "${GLPIINVENTORY_VERSION}" > /etc/glpi/glpiinventory_actual_version
|
||||||
|
php bin/console database:enable_timezones
|
||||||
msglog green "Initialazing complete..."
|
msglog green "Initialazing complete..."
|
||||||
else
|
else
|
||||||
msglog green "GLPI is already initialized"
|
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)
|
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)
|
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
|
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
|
[ -e "/var/www/glpi/install/install.php" ] && rm /var/www/glpi/install/install.php
|
||||||
msglog green "GLPI already up2date"
|
msglog green "GLPI already up2date"
|
||||||
start_apache
|
start_apache
|
||||||
@@ -74,12 +79,14 @@ else
|
|||||||
php82 bin/console glpi:maintenance:enable -n
|
php82 bin/console glpi:maintenance:enable -n
|
||||||
php82 bin/console glpi:plugin:deactivate --all # -n
|
php82 bin/console glpi:plugin:deactivate --all # -n
|
||||||
rm /var/www/glpi/install/install.php
|
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 "${GLPI_VERSION}" > /etc/glpi/glpi_actual_version ; \
|
||||||
echo "${FIELDS_VERSION}" > /etc/glpi/fields_actual_version ; \
|
echo "${FIELDS_VERSION}" > /etc/glpi/fields_actual_version ; \
|
||||||
echo "${DATAINJECTION_VERSION}" > /etc/glpi/datainjection_actual_version ; \
|
echo "${DATAINJECTION_VERSION}" > /etc/glpi/datainjection_actual_version ; \
|
||||||
echo "${GLPIINVENTORY_VERSION}" > /etc/glpi/glpiinventory_actual_version )
|
echo "${GLPIINVENTORY_VERSION}" > /etc/glpi/glpiinventory_actual_version )
|
||||||
php82 bin/console glpi:maintenance:disable -n
|
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
|
fi
|
||||||
start_apache
|
start_apache
|
||||||
|
0
web-builder/service/php
Normal file → Executable file
0
web-builder/service/php
Normal file → Executable file
Reference in New Issue
Block a user