Dockerfile 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. # ./docker/php/Dockerfile
  2. FROM php:7.0.33-fpm
  3. ARG COMPOSER_HASH
  4. ARG OS
  5. RUN sed 's/main$/main universe/' -i /etc/apt/sources.list; \
  6. apt-get update; \
  7. ### WKHTMLTOPDF
  8. if [ "x$OS" = "MAC" ] ; then apt-get install -y --no-install-recommends build-essential xorg iputils-ping libssl-dev libxrender-dev wget gdebi ca-certificates wget xz-utils libxrender1 libxt6 libxtst6 fontconfig zlib1g-dev libpng-dev libicu-dev g++; \
  9. else DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y build-essential xorg iputils-ping libssl-dev libxrender-dev wget gdebi ca-certificates wget xz-utils libxrender1 libxt6 libxtst6 fontconfig zlib1g-dev libpng-dev libicu-dev g++; \
  10. fi; \
  11. wget http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u12_amd64.deb; \
  12. dpkg -i libssl1.0.0_1.0.1t-1+deb8u12_amd64.deb; \
  13. wget http://ftp.de.debian.org/debian/pool/main/libp/libpng/libpng12-0_1.2.50-2+deb8u3_amd64.deb; \
  14. dpkg -i libpng12-0_1.2.50-2+deb8u3_amd64.deb; \
  15. dpkg -i libpng12-0_1.2.50-2+deb8u3_amd64.deb; \
  16. wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.jessie_amd64.deb; \
  17. dpkg -i wkhtmltox_0.12.5-1.jessie_amd64.deb; \
  18. ## ELASTICADUMP
  19. curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash; - \
  20. apt-get install nodejs -y; \
  21. npm install elasticdump@3.3.7 -g; \
  22. ## COMPOSER
  23. php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"; \
  24. php -r "if (hash_file('sha384', 'composer-setup.php') === '$COMPOSER_HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"; \
  25. php composer-setup.php; \
  26. php -r "unlink('composer-setup.php');"; \
  27. mv composer.phar /usr/local/bin/composer; \
  28. ## GIT, NANO, ACL, PROPCS, LIBZIP, IMAGICK
  29. apt-get install -y --no-install-recommends git nano acl procps libzip-dev zip libmagickwand-dev imagemagick libtidy-dev; \
  30. ## OP CACHE, PDO, BC MATH, CALENDAR, TODY
  31. docker-php-ext-configure zip --with-libzip; \
  32. docker-php-ext-configure intl; \
  33. docker-php-ext-install opcache pdo_mysql mbstring exif bcmath calendar gd intl tidy zip; \
  34. docker-php-ext-enable exif; \
  35. docker-php-ext-enable tidy; \
  36. # IMAGICK
  37. pecl install imagick-3.4.3RC2; \
  38. docker-php-ext-enable imagick; \
  39. ## APCU
  40. pecl install apcu-5.1.17; \
  41. pecl install apcu_bc;
  42. ######## BLACKFIRE #########
  43. # If you use Alpine, you need to set this value to "alpine"
  44. ENV current_os=linux
  45. RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;"); \
  46. curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/$current_os/amd64/$version; \
  47. mkdir -p /tmp/blackfire; \
  48. tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp/blackfire; \
  49. mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so; \
  50. printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini; \
  51. rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz;
  52. ######## BLACKFIRE #########
  53. COPY /.ssh /root/.ssh
  54. COPY /docker/php/conf/memory.ini /usr/local/etc/php/conf.d
  55. COPY /docker/php/conf/apc.ini /usr/local/etc/php/conf.d
  56. COPY /docker/php/conf/execution_time.ini /usr/local/etc/php/conf.d
  57. WORKDIR /var/www/html
  58. CMD if [ "x$OS" = "MAC" ] ; then HTTPDUSER=$(ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1); \
  59. setfacl -dR -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX app/cache app/logs && setfacl -R -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX app/cache app/logs; \
  60. chown -R www-data:www-data /var/www/html/web; \
  61. php-fpm; \
  62. else HTTPDUSER=$(ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1); \
  63. setfacl -dR -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX app/cache app/logs && setfacl -R -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX app/cache app/logs;\
  64. php-fpm; \
  65. fi;