Created
May 26, 2020 21:05
-
-
Save yaredc/5ee10b94cb173b442be8f4dbaea20356 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| FROM php:7.4-fpm-alpine | |
| ########################################################### | |
| #PRODUCTION ENVIRONMENT | |
| ########################################################### | |
| ENV PHP_FPM_USER="www-data" PHP_FPM_GROUP="www-data" | |
| #TIMEZONE | |
| RUN apk add --no-cache --virtual .deps tzdata &&\ | |
| cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime &&\ | |
| echo "Europe/Berlin" > /etc/timezone &&\ | |
| apk del .deps | |
| #NAMESERVERS | |
| RUN echo "nameserver 1.1.1.1" >> /etc/resolv.conf &&\ | |
| echo "nameserver 1.0.0.1" >> /etc/resolv.conf &&\ | |
| echo "nameserver 8.8.8.8" >> /etc/resolv.conf &&\ | |
| echo "nameserver 8.8.4.4" >> /etc/resolv.conf | |
| #DEPENDENCIES | |
| RUN apk add --no-cache --virtual .deps \ | |
| autoconf \ | |
| build-base \ | |
| freetype-dev \ | |
| jpeg-dev \ | |
| libpng-dev \ | |
| curl-dev \ | |
| zlib-dev \ | |
| icu-dev \ | |
| memcached-dev \ | |
| libzip-dev \ | |
| imagemagick-dev | |
| #CONFIGURE EXTENSIONS | |
| RUN docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg | |
| #INSTALL EXTENSIONS | |
| RUN docker-php-ext-install -j$(nproc) gd &&\ | |
| docker-php-ext-install -j$(nproc) pdo &&\ | |
| docker-php-ext-install -j$(nproc) pdo_mysql &&\ | |
| docker-php-ext-install -j$(nproc) mysqli &&\ | |
| docker-php-ext-install -j$(nproc) intl &&\ | |
| docker-php-ext-install -j$(nproc) zip | |
| #IMAGICK | |
| ENV EXT_IMAGICK_VERSION=3.4.4 | |
| RUN docker-php-source extract &&\ | |
| mkdir -p /usr/src/php/ext/imagick &&\ | |
| curl -fsSL https://github.com/Imagick/imagick/archive/$EXT_IMAGICK_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/imagick --strip 1 &&\ | |
| docker-php-ext-install imagick &&\ | |
| docker-php-source delete | |
| #IGBINARY | |
| ENV EXT_IGBINARY_VERSION=3.1.2 | |
| RUN docker-php-source extract &&\ | |
| mkdir -p /usr/src/php/ext/igbinary &&\ | |
| curl -fsSL https://github.com/igbinary/igbinary/archive/$EXT_IGBINARY_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/igbinary --strip 1 &&\ | |
| docker-php-ext-install igbinary &&\ | |
| docker-php-source delete | |
| #REDIS | |
| ENV EXT_REDIS_VERSION=5.2.2 | |
| RUN docker-php-source extract &&\ | |
| mkdir -p /usr/src/php/ext/redis &&\ | |
| curl -fsSL https://github.com/phpredis/phpredis/archive/$EXT_REDIS_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/redis --strip 1 &&\ | |
| docker-php-ext-configure redis --enable-redis-igbinary &&\ | |
| docker-php-ext-install redis &&\ | |
| docker-php-source delete | |
| #PHP.INI SETTINGS | |
| RUN echo "date.timezone=Europe/Berlin" >> "$PHP_INI_DIR"/php.ini-production &&\ | |
| echo "memory_limit=2048M" >> "$PHP_INI_DIR"/php.ini-production &&\ | |
| echo "date.timezone=Europe/Berlin" >> "$PHP_INI_DIR"/php.ini-development &&\ | |
| echo "memory_limit=2048M" >> "$PHP_INI_DIR"/php.ini-development &&\ | |
| cp "$PHP_INI_DIR"/php.ini-production "$PHP_INI_DIR"/php.ini &&\ | |
| echo "php_flag[display_errors]=off" >> /usr/local/etc/php-fpm.conf &&\ | |
| echo "php_admin_flag[log_errors]=on" >> /usr/local/etc/php-fpm.conf &&\ | |
| echo "php_admin_value[error_log]=/proc/self/fd/2" >> /usr/local/etc/php-fpm.conf &&\ | |
| echo "php_admin_value[error_reporting]=E_ALL" >> /usr/local/etc/php-fpm.conf &&\ | |
| echo "php_admin_value[display_startup_errors]=off" >> /usr/local/etc/php-fpm.conf | |
| #PROD | |
| RUN apk del .deps &&\ | |
| apk add --no-cache freetype \ | |
| jpeg \ | |
| libpng \ | |
| curl \ | |
| zlib \ | |
| icu \ | |
| memcached \ | |
| libzip \ | |
| imagemagick \ | |
| git \ | |
| openssh-client | |
| ########################################################### | |
| #DEVELOPMENT ENVIRONMENT | |
| ########################################################### | |
| #XDEBUG | |
| ENV EXT_XDEBUG_VERSION=2.9.5 | |
| RUN docker-php-source extract &&\ | |
| mkdir -p /usr/src/php/ext/xdebug &&\ | |
| curl -fsSL https://github.com/xdebug/xdebug/archive/$EXT_XDEBUG_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/xdebug --strip 1 &&\ | |
| docker-php-ext-configure xdebug &&\ | |
| docker-php-ext-install xdebug &&\ | |
| docker-php-source delete &&\ | |
| echo "xdebug.remote_enable=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini &&\ | |
| echo "xdebug.remote_autostart=0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini &&\ | |
| echo "xdebug.default_enable=0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini &&\ | |
| echo "xdebug.remote_host=host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini &&\ | |
| echo "xdebug.remote_port=9000" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini &&\ | |
| echo "xdebug.remote_connect_back=0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini &&\ | |
| echo "xdebug.profiler_enable=0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini &&\ | |
| cp "$PHP_INI_DIR"/php.ini-development "$PHP_INI_DIR"/php.ini &&\ | |
| echo "php_flag[display_errors]=on" >> /usr/local/etc/php-fpm.conf &&\ | |
| echo "php_admin_value[display_startup_errors]=on" >> /usr/local/etc/php-fpm.conf | |
| #COMPOSER | |
| RUN cd /tmp &&\ | |
| curl -sS https://getcomposer.org/installer | php &&\ | |
| mv composer.phar /bin/composer &&\ | |
| chmod a+x /bin/composer &&\ | |
| cd / &&\ | |
| su www-data -s /bin/sh -c "composer config --global github-oauth.github.com bd937536ef87c1f4e26ffcea742d47360afe5120" &&\ | |
| su www-data -s /bin/sh -c "composer global require fxp/composer-asset-plugin" | |
| ENV COMPOSER_HOME="/home/$PHP_FPM_USER/.composer" COMPOSER_MEMORY_LIMIT="-1" | |
| #PHING | |
| RUN curl -sS https://www.phing.info/get/phing-latest.phar > /bin/phing &&\ | |
| chmod a+x /bin/phing | |
| #WORKDIR | |
| RUN mkdir -p /var/www &&\ | |
| chown -R $PHP_FPM_USER:$PHP_FPM_GROUP /var/www &&\ | |
| chmod -R 0774 /var/www &&\ | |
| mkdir -p /home/$PHP_FPM_USER/.ssh &&\ | |
| echo "Host bitbucket.zoran.com" > /home/$PHP_FPM_USER/.ssh/config &&\ | |
| echo " Hostname zoran.com" >> /home/$PHP_FPM_USER/.ssh/config &&\ | |
| echo " User git" >> /home/$PHP_FPM_USER/.ssh/config &&\ | |
| echo " IdentityFile ~/.ssh/repo.key" >> /home/$PHP_FPM_USER/.ssh/config &&\ | |
| chmod -R 0700 /home/$PHP_FPM_USER/.ssh &&\ | |
| chown -R $PHP_FPM_USER:$PHP_FPM_GROUP /home/$PHP_FPM_USER | |
| WORKDIR /var/www | |
| USER $PHP_FPM_USER | |
| EXPOSE 9000 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment