Skip to content

Instantly share code, notes, and snippets.

@marcelaraujo
Created March 26, 2020 10:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marcelaraujo/d1f944ae7ce6f16821049762b8b98a37 to your computer and use it in GitHub Desktop.
Save marcelaraujo/d1f944ae7ce6f16821049762b8b98a37 to your computer and use it in GitHub Desktop.
PHP
FROM php:7.3-alpine
# This image is ready to build projects using technologies:
# - PHP7 (with Lumen)
# - Angular v8
# Check stack details in: https://confluence.agile.corp.edp.pt/display/TNG/PHP7
ENV COMPOSER_VERSION=1.9.3 \
COMPOSER_CACHE_DIR=/tmp/.composer/cache \
COMPOSER_MEMORY_LIMIT=2G \
COMPOSER_SHA256=551655c2fc81f4106508f42bbc4b24eabd34b022b13bc1e7d9642bf483d0a7d4 \
PATH=/home/devops/.composer/vendor/bin:$PATH
RUN addgroup --gid 1000 -S devops \
&& adduser --uid 1000 -D -G devops -g "devops" devops devops \
&& apk add --no-cache --virtual .build-deps \
make \
g++ \
&& apk add --no-cache \
git \
openssh \
patch \
zip \
unzip
# PHP
RUN apk add --update --no-cache \
&& pecl channel-update pecl.php.net \
# Opcache
&& docker-php-ext-configure opcache --enable-opcache \
&& docker-php-ext-enable opcache \
\
# XDebug
&& pecl install xdebug \
&& docker-php-ext-enable xdebug \
\
# gd
&& apk add --no-cache freetype-dev libxpm-dev libpng-dev libwebp-dev libjpeg-turbo-dev \
&& docker-php-ext-configure gd \
--with-gd \
--with-freetype-dir=/usr/include/ \
--with-png-dir=/usr/include/ \
--with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1) gd \
\
# bcmath
&& docker-php-ext-configure bcmath --enable-bcmath \
&& docker-php-ext-install bcmath \
\
# bzip and zip
&& apk add --no-cache libzip-dev bzip2-dev zlib-dev \
&& docker-php-ext-install -j$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1) bz2 zip \
\
# calendar
&& docker-php-ext-install calendar \
\
# dba
&& docker-php-ext-install dba \
\
# enchant
&& apk add --no-cache enchant-dev \
&& docker-php-ext-install enchant \
\
# exif
&& docker-php-ext-install exif \
\
# sockets
&& docker-php-ext-install sockets \
\
# soap
&& apk add --no-cache libxml2-dev \
&& docker-php-ext-install soap \
\
# shmop
&& docker-php-ext-install shmop \
\
# xmlrpc
&& docker-php-ext-install xmlrpc \
\
# gettext
&& apk add --no-cache gettext-dev \
&& docker-php-ext-install gettext \
\
# gmp
&& apk add --no-cache gmp-dev \
&& docker-php-ext-install gmp \
\
# intl
&& apk add --no-cache icu-dev \
&& docker-php-ext-configure intl --enable-intl \
&& docker-php-ext-install intl \
\
# tidy
&& apk add --no-cache tidyhtml-dev \
&& docker-php-ext-install tidy \
\
# xsl
&& apk add --no-cache libxslt-dev \
&& docker-php-ext-install xsl \
\
# pcntl
&& docker-php-ext-configure pcntl --enable-pcntl \
&& docker-php-ext-install pcntl \
\
# ldap
&& apk add --no-cache openldap-dev \
&& docker-php-ext-configure ldap \
&& docker-php-ext-install ldap \
\
# pgsql and pdo_pgsql
&& apk add --no-cache postgresql-dev \
&& docker-php-ext-configure pgsql \
&& docker-php-ext-configure pdo_pgsql \
&& docker-php-ext-install pgsql pdo_pgsql \
\
# mysqli and pdo_mysql
&& apk add --no-cache mariadb-dev \
&& docker-php-ext-configure mysqli \
&& docker-php-ext-configure pdo_mysql \
&& docker-php-ext-install mysqli pdo_mysql \
&& rm -rf /var/cache/apk/* \
&& docker-php-source delete \
&& apk del .build-deps
# Install composer
RUN wget "https://getcomposer.org/download/$COMPOSER_VERSION/composer.phar" -O /usr/local/bin/composer.phar \
&& php -r "if (hash_file('sha256', '/usr/local/bin/composer.phar') === '551655c2fc81f4106508f42bbc4b24eabd34b022b13bc1e7d9642bf483d0a7d4') { echo \"Composer installer verified\n\"; exit(0); } else { echo \"Composer nstaller corrupt\n\"; exit(1); } echo PHP_EOL;" \
&& mv /usr/local/bin/composer.phar /usr/local/bin/composer \
&& chmod +x /usr/local/bin/composer
WORKDIR /home/devops/
USER devops
# Install Prestissimo plugin and PHPUnit package
RUN composer global require hirak/prestissimo "phpunit/phpunit:~8.5.2" \
&& composer global clear-cache
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment