FROM php:7.2-alpine

RUN apk --no-cache add libmcrypt-dev \
        libltdl \
        icu-dev \
        freetype-dev \
        m4 \
        perl \
        autoconf \
        libc6-compat \
        build-base \
        curl \
        git \
        openssh \
        openssl \
        tini \
        bash \
        zlib-dev \
        gmp \
        gmp-dev \
    && docker-php-ext-install mbstring \
        zip \
        bcmath \
        opcache \
        gmp \
	&& apk del icu-dev \
        freetype-dev \
        build-base \
        zlib-dev \
        gmp-dev \
        autoconf \
        make \
	    perl

ENV COMPOSER_ALLOW_SUPERUSER 1
ENV COMPOSER_HOME /tmp
ENV COMPOSER_VERSION 1.7.3

ARG HOST_USER_UID=1000
ARG HOST_USER_GID=1000

COPY entrypoint.sh /entrypoint.sh

RUN chmod +x /entrypoint.sh \
 && echo "memory_limit=-1" > "$PHP_INI_DIR/conf.d/memory-limit.ini" \
 && echo "date.timezone=${PHP_TIMEZONE:-UTC}" > "$PHP_INI_DIR/conf.d/date_timezone.ini" \
 && php -r " \
    copy('https://getcomposer.org/installer', 'composer-setup.php'); \
    if (hash_file('SHA384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') \
    { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \
 && php composer-setup.php --no-ansi --install-dir=/usr/bin --filename=composer --version=${COMPOSER_VERSION} \
 && rm composer-setup.php \
 && composer --ansi --version --no-interaction \
 && rm -rf /tmp/* /tmp/.htaccess \
 && addgroup -g $HOST_USER_GID developers \
 && adduser -D -u $HOST_USER_UID -G developers developer

WORKDIR /app

ENTRYPOINT ["/entrypoint.sh"]

CMD ["composer"]
