# Imagen para probar la migración: Ubuntu 22.04 + Apache + PHP 8.x (PPA ondrej)
# + IBM CSDK 4.50 + PDO_INFORMIX 1.3.7.
# PHP_VERSION=8.2 es la combinación ya probada en /serverApps/docker-images/php_ifx_legacy.
# 8.3 y 8.4 deberían compilar igual, pero no están verificadas con PDO_INFORMIX.
FROM ubuntu:22.04

ARG PHP_VERSION=8.2
ENV DEBIAN_FRONTEND=noninteractive \
    TZ=America/Bogota \
    INFORMIXDIR=/opt/IBM/informix \
    PHP_VERSION=${PHP_VERSION}

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
 && apt-get update \
 && apt-get install -y --no-install-recommends software-properties-common gpg-agent ca-certificates curl \
 && add-apt-repository ppa:ondrej/php -y \
 && apt-get update \
 && apt-get install -y --no-install-recommends \
      apache2 libapache2-mod-php${PHP_VERSION} php${PHP_VERSION} php${PHP_VERSION}-dev php${PHP_VERSION}-cli \
      php${PHP_VERSION}-xml php${PHP_VERSION}-gd php${PHP_VERSION}-opcache php${PHP_VERSION}-mysql \
      php${PHP_VERSION}-zip php${PHP_VERSION}-soap php${PHP_VERSION}-mbstring php${PHP_VERSION}-curl \
      php${PHP_VERSION}-intl php${PHP_VERSION}-bcmath php${PHP_VERSION}-imagick \
      build-essential unzip \
 && rm -rf /var/lib/apt/lists/*

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

COPY vendor/pdo/PDO_INFORMIX-1.3.7.tgz /tmp/
RUN cd /tmp && tar -xzf PDO_INFORMIX-1.3.7.tgz && cd PDO_INFORMIX-1.3.7 \
 && INC=$(php-config${PHP_VERSION} --include-dir) \
 && phpize${PHP_VERSION} \
 && 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-config${PHP_VERSION} \
 && make && make install \
 && echo "extension=pdo_informix.so" > /etc/php/${PHP_VERSION}/mods-available/pdo_informix.ini \
 && phpenmod -v ${PHP_VERSION} pdo_informix \
 && rm -rf /tmp/PDO_INFORMIX-1.3.7*

COPY docker/common/000-default.conf /etc/apache2/sites-available/000-default.conf
COPY docker/common/php-local.ini /tmp/99-local.ini
RUN cp /tmp/99-local.ini /etc/php/${PHP_VERSION}/apache2/conf.d/99-local.ini \
 && cp /tmp/99-local.ini /etc/php/${PHP_VERSION}/cli/conf.d/99-local.ini \
 && 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"]
