ARG PHP_VERSION=7.4-fpm-alpine3.13 FROM paramah/base:alpine as base-config # # Build php extenstions # #================================================== FROM php:${PHP_VERSION} as builder RUN apk add --no-cache wget \ curl \ bash \ git \ openssh \ openssl \ bzip2-dev \ curl-dev \ libpng libpng-dev \ icu-dev \ gettext gettext-dev \ imap-dev \ ldb-dev libldap openldap-dev \ oniguruma-dev \ postgresql-dev \ sqlite sqlite-dev \ libxml2-dev \ libzip libzip-dev zip \ freetype-dev \ libpng-dev \ jpeg-dev \ libjpeg-turbo-dev COPY docker/ / # Configure php extensions RUN /usr/local/bin/php_configure.sh # Install php extensions RUN docker-php-ext-install -j$(nproc) \ calendar \ bcmath \ bz2 \ curl \ fileinfo \ gd \ gettext \ iconv \ imap \ intl \ json \ ldap \ mbstring \ opcache \ pcntl \ pdo \ pdo_mysql \ pdo_pgsql \ pdo_sqlite \ pgsql \ phar \ session \ simplexml \ soap \ xml \ zip # # Final image # #================================================== FROM php:${PHP_VERSION} ARG ENVIRONMENT=production # install system libs RUN apk add --no-cache libintl c-client libpng icu-libs libldap libpq libjpeg freetype libzip shadow sudo # Install apps RUN apk add --no-cache wget curl bash git openssh supervisor nginx openssl zip ENV DIR /var/www ENV DOCKERIZE_VERSION v0.6.1 # Install dockerize RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && tar -C /usr/local/bin -xzvf dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && rm dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz COPY --from=base-config /etc/supervisor /etc/supervisor COPY --from=builder /usr/local/lib/php /usr/local/lib/php COPY --from=builder /usr/local/etc /usr/local/etc # Copy base files to docker container COPY docker/ / #PHP helper RUN /usr/local/bin/php_helper.sh #install cachetool RUN wget -O /bin/cachetool http://gordalina.github.io/cachetool/downloads/cachetool.phar RUN chmod a+x /bin/cachetool #install phpunit RUN wget -O phpunit https://phar.phpunit.de/phpunit-9.phar RUN install phpunit /usr/local/bin # Create directories RUN mkdir -p /var/www WORKDIR $DIR # Copy base configuration files COPY docker/etc /etc/ EXPOSE 80 CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]