136 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| #
 | |
| #--------------------------------------------------------------------------
 | |
| # 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 \
 | |
|   pcre-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
 | |
| 
 | |
| # Add a non-root user:
 | |
| ARG PUID=1000
 | |
| ENV PUID ${PUID}
 | |
| ARG PGID=1000
 | |
| ENV PGID ${PGID}
 | |
| 
 | |
| RUN addgroup -g ${PGID} laradock && \
 | |
|     adduser -D -G laradock -u ${PUID} laradock
 | |
| 
 | |
| #Install SOAP package:
 | |
| ARG INSTALL_SOAP=false
 | |
| RUN if [ ${INSTALL_SOAP} = true ]; then \
 | |
|     docker-php-ext-install soap \
 | |
| ;fi
 | |
| 
 | |
| #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
 | |
| 
 | |
| # Install ZipArchive:
 | |
| ARG INSTALL_ZIP_ARCHIVE=false
 | |
| RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
 | |
|     apk --update add libzip-dev && \
 | |
|     docker-php-ext-configure zip --with-libzip && \
 | |
|     # Install the zip extension
 | |
|     docker-php-ext-install zip \
 | |
| ;fi
 | |
| 
 | |
| # Install MySQL Client:
 | |
| ARG INSTALL_MYSQL_CLIENT=false
 | |
| RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \
 | |
|     apk --update add mysql-client \
 | |
| ;fi
 | |
| 
 | |
| # Install AMQP:
 | |
| ARG INSTALL_AMQP=false
 | |
| 
 | |
| RUN if [ ${INSTALL_AMQP} = true ]; then \
 | |
|     apk --update add rabbitmq-c rabbitmq-c-dev && \
 | |
|     pecl install amqp && \
 | |
|     docker-php-ext-enable amqp && \
 | |
|     docker-php-ext-install sockets \
 | |
| ;fi
 | |
| 
 | |
| # Install Phalcon ext
 | |
| ARG INSTALL_PHALCON=false
 | |
| ARG PHALCON_VERSION
 | |
| ENV PHALCON_VERSION ${PHALCON_VERSION}
 | |
| 
 | |
| RUN if [ $INSTALL_PHALCON = true ]; then \
 | |
|     apk --update add unzip gcc make re2c bash\
 | |
|     && curl -L -o /tmp/cphalcon.zip https://github.com/phalcon/cphalcon/archive/v${PHALCON_VERSION}.zip \
 | |
|     && unzip -d /tmp/ /tmp/cphalcon.zip \
 | |
|     && cd /tmp/cphalcon-${PHALCON_VERSION}/build \
 | |
|     && ./install \
 | |
|     && rm -rf /tmp/cphalcon* \
 | |
| ;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/
 | 
