|
@@ -0,0 +1,107 @@
|
|
|
+#
|
|
|
+#--------------------------------------------------------------------------
|
|
|
+# Image Setup
|
|
|
+#--------------------------------------------------------------------------
|
|
|
+#
|
|
|
+
|
|
|
+ARG PHP_VERSION=${PHP_VERSION}
|
|
|
+FROM php:${PHP_VERSION}-alpine
|
|
|
+
|
|
|
+LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
|
|
+
|
|
|
+RUN apk --update add wget \
|
|
|
+ curl \
|
|
|
+ git \
|
|
|
+ build-base \
|
|
|
+ libmemcached-dev \
|
|
|
+ libmcrypt-dev \
|
|
|
+ libxml2-dev \
|
|
|
+ zlib-dev \
|
|
|
+ autoconf \
|
|
|
+ cyrus-sasl-dev \
|
|
|
+ libgsasl-dev \
|
|
|
+ supervisor
|
|
|
+
|
|
|
+RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql tokenizer xml pcntl
|
|
|
+RUN pecl channel-update pecl.php.net && pecl install memcached mcrypt-1.0.1 && docker-php-ext-enable memcached
|
|
|
+
|
|
|
+#Install BCMath package:
|
|
|
+ARG INSTALL_BCMATH=false
|
|
|
+RUN if [ ${INSTALL_BCMATH} = true ]; then \
|
|
|
+ docker-php-ext-install bcmath \
|
|
|
+ ;fi
|
|
|
+
|
|
|
+# Install PostgreSQL drivers:
|
|
|
+ARG INSTALL_PGSQL=false
|
|
|
+RUN if [ ${INSTALL_PGSQL} = true ]; then \
|
|
|
+ apk --update add postgresql-dev \
|
|
|
+ && docker-php-ext-install pdo_pgsql \
|
|
|
+ ;fi
|
|
|
+
|
|
|
+###########################################################################
|
|
|
+# PHP Memcached:
|
|
|
+###########################################################################
|
|
|
+
|
|
|
+ARG INSTALL_MEMCACHED=false
|
|
|
+
|
|
|
+RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
|
|
|
+ # Install the php memcached extension
|
|
|
+ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
|
|
+ curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/2.2.0.tar.gz"; \
|
|
|
+ else \
|
|
|
+ curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz"; \
|
|
|
+ fi \
|
|
|
+ && mkdir -p memcached \
|
|
|
+ && tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
|
|
|
+ && ( \
|
|
|
+ cd memcached \
|
|
|
+ && phpize \
|
|
|
+ && ./configure \
|
|
|
+ && make -j$(nproc) \
|
|
|
+ && make install \
|
|
|
+ ) \
|
|
|
+ && rm -r memcached \
|
|
|
+ && rm /tmp/memcached.tar.gz \
|
|
|
+ && docker-php-ext-enable memcached \
|
|
|
+ ;fi
|
|
|
+
|
|
|
+RUN rm /var/cache/apk/* \
|
|
|
+ && mkdir -p /var/www
|
|
|
+
|
|
|
+#
|
|
|
+#--------------------------------------------------------------------------
|
|
|
+# Optional Supervisord Configuration
|
|
|
+#--------------------------------------------------------------------------
|
|
|
+#
|
|
|
+# Modify the ./supervisor.conf file to match your App's requirements.
|
|
|
+# Make sure you rebuild your container with every change.
|
|
|
+#
|
|
|
+
|
|
|
+COPY supervisord.conf /etc/supervisord.conf
|
|
|
+
|
|
|
+ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"]
|
|
|
+
|
|
|
+#
|
|
|
+#--------------------------------------------------------------------------
|
|
|
+# Optional Software's Installation
|
|
|
+#--------------------------------------------------------------------------
|
|
|
+#
|
|
|
+# If you need to modify this image, feel free to do it right here.
|
|
|
+#
|
|
|
+# -- Your awesome modifications go here -- #
|
|
|
+
|
|
|
+#
|
|
|
+#--------------------------------------------------------------------------
|
|
|
+# Check PHP version
|
|
|
+#--------------------------------------------------------------------------
|
|
|
+#
|
|
|
+
|
|
|
+RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
|
|
|
+
|
|
|
+#
|
|
|
+#--------------------------------------------------------------------------
|
|
|
+# Final Touch
|
|
|
+#--------------------------------------------------------------------------
|
|
|
+#
|
|
|
+
|
|
|
+WORKDIR /etc/supervisor/conf.d/
|