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 --virtual build-essentials \ icu-dev icu-libs zlib-dev g++ make automake autoconf libzip-dev \ libpng-dev libwebp-dev libjpeg-turbo-dev freetype-dev \ 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 & install php extensions RUN /usr/local/bin/php_configure.sh # # Final image # #================================================== FROM php:${PHP_VERSION} ARG ENVIRONMENT=production # Add testing alpine repository # RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86" >> /etc/apk/repositories \ # apk update # install system libs RUN apk update && apk add --no-cache libintl c-client libpng icu-libs libldap libpq libjpeg freetype libzip shadow sudo 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 # 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"]