Skip to content

Instantly share code, notes, and snippets.

@XOlegator
Last active August 29, 2020 13:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save XOlegator/878b24f3e4b289aa1926b22a0ae506b5 to your computer and use it in GitHub Desktop.
Save XOlegator/878b24f3e4b289aa1926b22a0ae506b5 to your computer and use it in GitHub Desktop.
How to add Xdebug to docker
# Исходный образ
FROM php:7.2-fpm
# RUN выполняет идущую за ней команду в контексте нашего образа.
# В данном случае мы установим некоторые зависимости и модули PHP.
# Для установки модулей используем команду docker-php-ext-install.
# На каждый RUN создается новый слой в образе, поэтому рекомендуется объединять команды.
RUN apt-get update && apt-get install -y \
curl \
wget \
git \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng-dev \
libicu-dev \
libxml2-dev \
libpq-dev \
&& pecl install mcrypt-1.0.1 \
&& docker-php-ext-install -j$(nproc) intl bcmath soap pgsql pdo_pgsql zip \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd \
&& docker-php-ext-enable mcrypt
RUN yes | pecl install xdebug \
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_host = 172.18.0.1" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.coverage_enable = 1" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.profiler_enable = 0" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.var_display_max_depth = 3" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.var_display_max_children = 128" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.var_display_max_data = 512" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.max_nesting_level = 256" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo 'xdebug.idekey="webmaster"' >> /usr/local/etc/php/conf.d/xdebug.ini \
&& mkdir /usr/local/etc/php/debug_conf.d/ \
&& ln -s /usr/local/etc/php/conf.d/* /usr/local/etc/php/debug_conf.d/
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Добавим свой php.ini, можем в нем определять свои значения конфига
ADD php.ini /usr/local/etc/php/conf.d/40-custom.ini
# Указываем рабочую директорию для PHP
WORKDIR /app
CMD ["php-fpm"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment