FROM {{{os/name}}}:{{{os/version}}}

ARG DEBIAN_FRONTEND="noninteractive"
ARG DEBCONF_NOWARNINGS="yes"

RUN ln -snf /usr/share/zoneinfo/{{{php/timezone}}} /etc/localtime && echo {{{php/timezone}}} > /etc/timezone

RUN apt-get clean && apt-get -y update && apt-get install -y locales \
    curl \
    ca-certificates \
    software-properties-common \
    git \
    zip \
    gzip \
    mc \
    mariadb-client \
    telnet \
    libmagickwand-dev \
    imagemagick \
    libmcrypt-dev \
    procps \
    openssh-client \
    lsof \
  && locale-gen en_US.UTF-8

RUN LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php

RUN apt-get update && apt-get install -y php{{{php/version}}}-bcmath \
    php{{{php/version}}}-cli \
    php{{{php/version}}}-common \
    php{{{php/version}}}-curl \
    php{{{php/version}}}-dev \
    php{{{php/version}}}-fpm \
    php{{{php/version}}}-gd \
    php{{{php/version}}}-intl \
    php{{{php/version}}}-mbstring \
    php{{{php/version}}}-mysql \
    php{{{php/version}}}-opcache \
    php{{{php/version}}}-soap \
    php{{{php/version}}}-sqlite3 \
    php{{{php/version}}}-xml \
    php{{{php/version}}}-xmlrpc \
    php{{{php/version}}}-xsl \
    php{{{php/version}}}-zip \
    php{{{php/version}}}-imagick

SHELL ["/bin/bash", "-c"]
RUN IFS='.' read major minor patch <<< "{{{php/version}}}" \
    && if [[ "${major}" > "7" || ("${major}" = "7" && "${minor}" > "1") ]]; then pecl install mcrypt-1.0.7 \
    && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
    && bash -c "echo extension=${EXTENSION_DIR}/mcrypt.so > /etc/php/{{{php/version}}}/cli/conf.d/mcrypt.ini" \
    && bash -c "echo extension=${EXTENSION_DIR}/mcrypt.so > /etc/php/{{{php/version}}}/fpm/conf.d/mcrypt.ini"; fi \
    && if [[ "${major}" < "7" || ("${major}" = "7" && "${minor}" < "2") ]]; then apt-get install -y php{{{php/version}}}-mcrypt; fi \
    && if [[ "${major}" < "7" ]]; then apt-get install -y php{{{php/version}}}-json; fi

RUN sed -i -e "s/pid =.*/pid = \/var\/run\/php{{{php/version}}}-fpm.pid/" /etc/php/{{{php/version}}}/fpm/php-fpm.conf \
    && sed -i -e "s/error_log =.*/error_log = \/proc\/self\/fd\/2/" /etc/php/{{{php/version}}}/fpm/php-fpm.conf \
    && sed -i -e "s/;daemonize\s*=\s*yes/daemonize = no/g" /etc/php/{{{php/version}}}/fpm/php-fpm.conf \
    && sed -i "s/listen = .*/listen = 9000/" /etc/php/{{{php/version}}}/fpm/pool.d/www.conf \
    && sed -i "s/;catch_workers_output = .*/catch_workers_output = yes/" /etc/php/{{{php/version}}}/fpm/pool.d/www.conf

RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN rm -f /var/log/faillog && rm -f /var/log/lastlog

RUN usermod -u {{{os/user/uid}}} -o www-data && groupmod -g {{{os/user/guid}}} -o www-data
WORKDIR {{{workdir}}}
RUN chown {{{os/user/uid}}}:{{{os/user/guid}}} {{{workdir}}}

CMD "php-fpm{{{php/version}}}"
