FROM alpine
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.19
ENV FIELDS_VERSION=1.21.23
ENV DATAINJECTION_VERSION=2.14.2
ENV GLPIINVENTORY_VERSION=1.5.3


RUN \
apk add --no-cache \
   php82-apache2 \
   php82 \
   mariadb-client \
   php82-pecl-apcu \
   php82-pecl-redis \
   php82-mysqli \
   php82-gd \
   php82-intl \
   php82-ldap \
   php82-xml \
   php82-xmlreader \
   php82-xmlwriter \
   php82-exif \
   php82-zip \
   php82-bz2 \
   php82-opcache \
   php82-pear \
   php82-curl \
   php82-dom \
   php82-pdo \
   php82-json \
   php82-session \
   php82-ctype \
   php82-fileinfo \
   php82-mbstring \
   php82-simplexml \
   php82-iconv \
   php82-sodium \
   php82-imap \
   php82-pdo \
   php82-pdo_mysql \
   php82-pspell \
   php82-phar \
   patch

COPY CAS-1.3.8.tgz /root/
RUN pear82 install /root/CAS-1.3.8.tgz && \
pear82 install Archive_Tar
COPY httpd.conf /etc/apache2
COPY remoteip.conf /etc/apache2/conf.d
COPY service/ /etc/service/
COPY glpi.cron /var/spool/cron/crontabs/apache
ADD https://github.com/glpi-project/glpi/releases/download/${GLPI_VERSION}/glpi-${GLPI_VERSION}.tgz /root/glpi-${GLPI_VERSION}.tgz
ADD https://github.com/pluginsGLPI/fields/releases/download/${FIELDS_VERSION}/glpi-fields-${FIELDS_VERSION}.tar.bz2 /root/glpi-fields-${FIELDS_VERSION}.tar.bz2
ADD https://github.com/pluginsGLPI/datainjection/releases/download/${DATAINJECTION_VERSION}/glpi-datainjection-${DATAINJECTION_VERSION}.tar.bz2 /root/glpi-datainjection-${DATAINJECTION_VERSION}.tar.bz2
ADD https://github.com/glpi-project/glpi-inventory-plugin/releases/download/${GLPIINVENTORY_VERSION}/glpi-glpiinventory-${GLPIINVENTORY_VERSION}.tar.bz2 /root/glpi-glpiinventory-${GLPIINVENTORY_VERSION}.tar.bz2

RUN \
mkdir -p /root/glpi_template/etc /root/glpi_template/files && \
tar -x -f /root/glpi-${GLPI_VERSION}.tgz && \
cp -r /root/glpi/config/. /root/glpi_template/etc/. && \
cp -r /root/glpi/files/. /root/glpi_template/files/. && \
rm -r /root/glpi/config /root/glpi/files && \
mv /root/glpi /var/www/glpi && \
cd /var/www/glpi/marketplace && \
tar x -f /root/glpi-fields-${FIELDS_VERSION}.tar.bz2 && \
tar x -f /root/glpi-datainjection-${DATAINJECTION_VERSION}.tar.bz2 && \
tar x -f /root/glpi-glpiinventory-${GLPIINVENTORY_VERSION}.tar.bz2 && \
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/*

EXPOSE 80
WORKDIR /var/www/glpi
ENTRYPOINT ["/etc/service/glpi"]
