@johnmohnachev

Как запустить режим php-fpm debug в docker container, если php-fpm запускать из shell скрипта?

Использую php-fpm образ из github ссылка

Расширил его следующим образом
Dockerfile

FROM php:5.6-fpm

WORKDIR /app

COPY php.ini /usr/local/etc/php/

RUN apt-get update \
&& apt-get install -y nano sudo redis-tools ssh libmagickwand-dev libmagickcore-dev \
&& printf "\n" | pecl install imagick \
&& docker-php-ext-install pcntl mysql mysqli pdo pdo_mysql \
&& pecl install redis-3.1.0 \
&& docker-php-ext-enable redis \
&& pecl install xdebug-2.5.0 \
&& docker-php-ext-enable xdebug

CMD ["sudo", "bash", "/app/docker/start_workers.sh"]


/app/docker/start_workers.sh

#!/bin/bash
eval "php-fpm" &
sleep 5
eval "$(echo "sudo -uwww-data php /app/cli_resque.php -start")"
while true; do sleep 1; done


Сам PHP запускается, вторая команда так же запускается, благожаря циклу скрипт не выпадает и следовательно докер не закрывается. Но! В такой режиме не хочет запускаться xdebug. Если убрать вызов этого скрипта с помощью CMD, т.е.:

FROM php:5.6-fpm

WORKDIR /app

COPY php.ini /usr/local/etc/php/

RUN apt-get update \
&& apt-get install -y nano sudo redis-tools ssh libmagickwand-dev libmagickcore-dev \
&& printf "\n" | pecl install imagick \
&& docker-php-ext-install pcntl mysql mysqli pdo pdo_mysql \
&& pecl install redis-3.1.0 \
&& docker-php-ext-enable redis \
&& pecl install xdebug-2.5.0 \
&& docker-php-ext-enable xdebug

debug запускается и работает отлично, но моя вторая команда из /app/docker/start_workers.sh естественно не запускается, так как сам скрипт теперь не вызывается.

Может кто-нибудь помощь в той ситуации? Нужно либо запустить debug, либо обхяснить дурачку, как запустить свою команду после запуска php-fpm
  • Вопрос задан
  • 552 просмотра
Решения вопроса 1
@johnmohnachev Автор вопроса
/app/docker/start_workers.sh

#!/bin/bash
php-fpm &
sudo -uwww-data php /app/cli_resque.php -start
while true; do sleep 1; done


Решил проблему с отсутствующим дебагом. Точно не понял какая, но проблема в "eval" в bash скрипте, то ли он в каком-то магическом потоке запускает толи еще что, ну вот без него все гуд. Может кому-то пригодится)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы