# Réplica de la imagen de producción (/serverApps/docker-images/php_ifx_72):
# Ubuntu 18.04 + Apache + PHP 7.2 + IBM CSDK 4.50 + PDO_INFORMIX 1.3.3
FROM ubuntu:18.04

ENV DEBIAN_FRONTEND=noninteractive \
    TZ=America/Bogota \
    INFORMIXDIR=/opt/IBM/informix

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
 && apt-get update \
 && apt-get install -y --no-install-recommends \
      apache2 libapache2-mod-php7.2 php7.2 php7.2-dev php7.2-xml php7.2-gd php7.2-opcache \
      php7.2-mysql php7.2-zip php7.2-soap php7.2-sybase php7.2-mbstring php7.2-curl \
      php7.2-json php7.2-intl php-imagick php-pear libmcrypt-dev \
      build-essential unzip curl ca-certificates \
 && printf "\n" | pecl install mcrypt-1.0.1 \
 && echo "extension=mcrypt.so" > /etc/php/7.2/mods-available/mcrypt.ini \
 && phpenmod mcrypt \
 && rm -rf /var/lib/apt/lists/*

# IBM Informix Client SDK (el .tar se copia a vendor/ibm, ver README)
COPY vendor/ibm/ibm.csdk.4.50.FC1.LNX.tar /tmp/csdk/
RUN cd /tmp/csdk && tar -xf ibm.csdk.4.50.FC1.LNX.tar \
 && sh ./installclientsdk -i silent -DLICENSE_ACCEPTED=TRUE -DPRQCHECK=FALSE \
      -DUSER_INSTALL_DIR=$INFORMIXDIR -DOVERWRITE_PRODUCT=TRUE \
 && rm -rf /tmp/csdk

# PDO_INFORMIX: se ajusta la ruta de includes de PDO a la del PHP instalado
COPY vendor/pdo/PDO_INFORMIX-1.3.3.tgz /tmp/
RUN cd /tmp && tar -xzf PDO_INFORMIX-1.3.3.tgz && cd PDO_INFORMIX-1.3.3 \
 && INC=$(php-config7.2 --include-dir) \
 && phpize7.2 \
 && sed -i "s,elif test -f \$prefix/include/php/ext/pdo/php_pdo_driver.h; then,elif test -f $INC/ext/pdo/php_pdo_driver.h; then,g" configure \
 && sed -i "s,pdo_inc_path=\$prefix/include/php/ext,pdo_inc_path=$INC/ext,g" configure \
 && ./configure --with-pdo-informix=$INFORMIXDIR --with-php-config=/usr/bin/php-config7.2 \
 && make && make install \
 && echo "extension=pdo_informix.so" > /etc/php/7.2/mods-available/pdo_informix.ini \
 && phpenmod pdo_informix \
 && rm -rf /tmp/PDO_INFORMIX-1.3.3*

COPY docker/common/000-default.conf /etc/apache2/sites-available/000-default.conf
COPY docker/common/php-local.ini /etc/php/7.2/apache2/conf.d/99-local.ini
COPY docker/common/php-local.ini /etc/php/7.2/cli/conf.d/99-local.ini

RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf \
 && a2enmod rewrite \
 && echo "export INFORMIXDIR=$INFORMIXDIR" >> /etc/apache2/envvars \
 && echo "export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:$INFORMIXDIR/lib/cli:$INFORMIXDIR/lib/c++:$INFORMIXDIR/lib/client:$INFORMIXDIR/lib/dmi" >> /etc/apache2/envvars \
 && echo "PassEnv SICE_PORT MYSQL_HOST MYSQL_USER MYSQL_PASS MYSQL_DB IFX_APP_USER IFX_APP_PASS" > /etc/apache2/conf-enabled/passenv.conf

WORKDIR /var/www/html
EXPOSE 80
CMD ["apachectl", "-D", "FOREGROUND"]
