ARG PHP_IMAGE
FROM ${PHP_IMAGE}

ARG TZ
ARG PHP_EXTENSIONS
ARG CONTAINER_PACKAGE_URL

# 1) Evita erro quando a variável está vazia e protege o padrão do repositório
RUN if [ -n "${CONTAINER_PACKAGE_URL}" ] ; then \
      sed -i "s|dl-cdn.alpinelinux.org|${CONTAINER_PACKAGE_URL}|g" /etc/apk/repositories ; \
    fi

# 2) Instala o helper de extensões
COPY extensions/install-php-extensions /usr/local/bin/install-php-extensions
RUN chmod +x /usr/local/bin/install-php-extensions

# 3) Copia os scripts de hook e o entrypoint customizado
COPY zz-ini.sh           /usr/local/bin/zz-ini.sh
COPY entrypoint.sh       /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/zz-ini.sh \
    && chmod +x /usr/local/bin/entrypoint.sh

# 4) Instala as extensões PHP selecionadas
COPY extensions      /tmp/extensions
WORKDIR /tmp/extensions
RUN chmod +x install.sh \
    && ./install.sh \
    && rm -rf /tmp/extensions

# 5) Timezone
RUN apk --no-cache add tzdata \
    && cp "/usr/share/zoneinfo/${TZ}" /etc/localtime \
    && echo "${TZ}" > /etc/timezone

# 6) Fix libiconv
RUN apk add --no-cache \
      gnu-libiconv \
      libstdc++ \
      --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ \
    && export LD_PRELOAD=/usr/lib/preloadable_libiconv.so

# 7) Composer
RUN curl -sSL -o /usr/bin/composer https://getcomposer.org/download/latest-stable/composer.phar \
    && chmod +x /usr/bin/composer
ENV COMPOSER_HOME=/tmp/composer

# 8) Ini-file helper (do icontainer.run)
RUN curl -fsSL https://icontainer.run/ini-file.tar.gz \
    | tar xz -C /usr/local/bin ini-file \
    && chmod +x /usr/local/bin/ini-file

# 9) Ajuste de usuário www-data para UID/GID 1000
RUN apk --no-cache add shadow \
    && usermod -u 1000 www-data \
    && groupmod -g 1000 www-data

# 10) Socket directory
RUN mkdir -p /var/run/php-sockets \
    && chown -R www-data:www-data /var/run/php-sockets

WORKDIR /www

# 11) EntryPoint e Cmd
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["php-fpm"]