FROM php:8.0-fpm-alpine3.15

ARG SSH_PRIVATE_KEY
ARG SSH_PUBLIC_KEY
ARG GITHUB_PIPELINE_TOKEN
ARG BRANCH_NAME

USER root

ENV PATH /usr/local/src/vendor/bin:$PATH
ENV SSH_PRIVATE_KEY $SSH_PRIVATE_KEY
ENV SSH_PUBLIC_KEY $SSH_PUBLIC_KEY
ENV GITHUB_PIPELINE_TOKEN $GITHUB_PIPELINE_TOKEN
ENV COMPOSER_ROOT_VERSION "dev-$BRANCH_NAME"

RUN apk update \
 && apk add --no-cache $PHPIZE_DEPS \
    bash \
    openssh-client \
    gcc \
    libtool \
    git \
    zip \
    unzip

RUN docker-php-ext-install pdo pdo_mysql mysqli bcmath
RUN apk add --no-cache libzip-dev libpng-dev libsodium-dev && docker-php-ext-install zip sodium gd

# Install composer
RUN php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer
RUN wget -O /usr/local/bin/local-php-security-checker "https://github.com/fabpot/local-php-security-checker/releases/download/v1.0.0/local-php-security-checker_1.0.0_linux_amd64"
RUN chmod +x /usr/local/bin/local-php-security-checker

# Install php cs fixer, phpmd, phpstan and composer unused
RUN set -xe; \
    mkdir -p /usr/local/src; \
    cd /usr/local/src; \
    composer init --name inside-drupal-theme/docker; \
    composer config --no-plugins allow-plugins.icanhazstring/composer-unused true; \
    composer require --dev phpstan/phpstan:1.8.6; \
    composer require --dev friendsofphp/php-cs-fixer:3.4.0; \
    composer require --dev phpmd/phpmd; \
    composer require --dev icanhazstring/composer-unused:*; \
    composer require --dev phpunit/phpunit; \
    composer require --dev mockery/mockery;