2017-01-23 4 views
0

Я использую Docker для работы над проектом Symfony 3 Вот следующий стек:Symfony 3 и Докер (Nginx, php7.1-FPM mysql8) Спектакли низкие на Windows,

-Custom Php7.1FPM вот DockerFile:

FROM php:7.1.0-fpm 
MAINTAINER xxxxx xxxxxx <[email protected]> 
ENV PHP_APCU_VERSION 5.1.8 
ENV PHP_XDEBUG_VERSION 2.5.0 
RUN apt-get update \ 
    && apt-get install -y \ 
     libicu-dev \ 
     zlib1g-dev \ 
    && docker-php-source extract \ 
    && curl -L -o /tmp/apcu-$PHP_APCU_VERSION.tgz https://pecl.php.net/get/apcu-$PHP_APCU_VERSION.tgz \ 
    && curl -L -o /tmp/xdebug-$PHP_XDEBUG_VERSION.tgz http://xdebug.org/files/xdebug-$PHP_XDEBUG_VERSION.tgz \ 
    && tar xfz /tmp/apcu-$PHP_APCU_VERSION.tgz \ 
    && tar xfz /tmp/xdebug-$PHP_XDEBUG_VERSION.tgz \ 
    && rm -r \ 
     /tmp/apcu-$PHP_APCU_VERSION.tgz \ 
     /tmp/xdebug-$PHP_XDEBUG_VERSION.tgz \ 
    && mv apcu-$PHP_APCU_VERSION /usr/src/php/ext/apcu \ 
    && mv xdebug-$PHP_XDEBUG_VERSION /usr/src/php/ext/xdebug \ 
    && docker-php-ext-install \ 
     apcu \ 
     intl \ 
     mbstring \ 
     mysqli \ 
     xdebug \ 
     zip \ 
    && pecl install apcu_bc-1.0.3 \ 
    && docker-php-source delete \ 
    && php -r "readfile('https://getcomposer.org/installer');" | php -- --install-dir=/usr/local/bin --filename=composer \ 
    && chmod +x /usr/local/bin/composer 
  • последний Nginx изображение
  • MySQL: 8.0.0

Я использую Докер-Compose, чтобы построить эти 3 контейнера, вот докер-compose.yml:

front: 
    image: nginx 
    ports: 
     - "81:80" 
    links: 
     - "engine:engine" 
    volumes: 
     - ".:/home/docker:ro" 
     - "./docker/front/default.conf:/etc/nginx/conf.d/default.conf:ro" 
engine: 
    build: ./docker/engine/ 
    volumes: 
     - ".:/home/docker:rw" 
     - "./docker/engine/php.ini:/usr/local/etc/php/conf.d/custom.ini:ro" 
    links: 
     - "db:db" 
    working_dir: "/home/docker" 

db: 
    image: mysql:8.0.0 
    ports: 
     - "3306:3306" 
    environment: 
     - MYSQL_ROOT_PASSWORD=pwd 
     - MYSQL_USER=myUSer 
     - MYSQL_PASSWORD=pwd 
     - MYSQL_DATABASE=bddProject 

В первый раз без кэша время составляет 1700 мс:

enter image description here

И время с кешем:

enter image description here

Половина времени - время инициализации:

Какая проблема может замедлить рендеринг страницы моего проекта? Последняя версия Docker и 2 Go с системой Windows Hyper-v.

Благодарим за помощь.

ответ

0

Насколько я могу видеть, что есть две вещи, которые отвечают за эти выступления:

  • Xdebug
  • Окна: это не тролль, но это хорошо известная проблема, кстати объемы контейнеров обрабатываются Docker в Windows не так эффективен, как в Linux.

У вас есть три решения: борьба, чтобы найти метод, который немного улучшает представления, использовать Linux (в виртуальной машине, например) или иметь дело с ним :)

+0

Хорошо спасибо, я попробую с fpm без xdebug, чтобы увидеть, есть ли улучшения производительности. Это не ужасно 650 мс, но я просто хочу знать, если это нормально. В производстве мой сервер будет на linux, так что это не проблема ... – psylo66

+0

Я подтверждаю, что это нормально.А также, когда латентность составляет <2 секунды, очевидно, что правильно разработать;) Кстати, ваша машина должна быть неплохо иметь такие результаты, потому что некоторым из моих друзей приходилось ждать, как 5-10 секунд, чтобы страницы отображались на их окнах , –

0

Так я сделать другое изображение без XDebug муравья результат тот же (700 мс с кэшем):

Мои DockerFile:

FROM php:7.1.0-fpm 
MAINTAINER XXXXX XXXXXX <[email protected]> 
ENV PHP_APCU_VERSION 5.1.8 
RUN apt-get update \ 
    && apt-get install -y \ 
     libicu-dev \ 
     zlib1g-dev \ 
    && docker-php-source extract \ 
    && curl -L -o /tmp/apcu-$PHP_APCU_VERSION.tgz https://pecl.php.net/get/apcu-$PHP_APCU_VERSION.tgz \ 
    && tar xfz /tmp/apcu-$PHP_APCU_VERSION.tgz \ 
    && rm -r \ 
     /tmp/apcu-$PHP_APCU_VERSION.tgz \ 
    && mv apcu-$PHP_APCU_VERSION /usr/src/php/ext/apcu \ 
    && docker-php-ext-install \ 
     apcu \ 
     intl \ 
     mbstring \ 
     mysqli \ 
     zip \ 
    && pecl install apcu_bc-1.0.3 \ 
    && docker-php-source delete \ 
    && php -r "readfile('https://getcomposer.org/installer');" | php -- --install-dir=/usr/local/bin --filename=composer \ 
    && chmod +x /usr/local/bin/composer 

так что управление окна объема Докер, которые делают это, так @Geoffrey Brier вы знаете, планирует ли Microsoft улучшить эту проблему производительности? Есть ли мягкие или другие, чтобы улучшить это?

Благодарим за помощь.

+0

Поиск «медленного док-станции Symfony», вы найдете множество результатов здесь и в Google. – Veve