#docker #debian #xdebug
#docker #debian #xdebug
Вопрос:
Вот файл Dockerfile для существующего проекта, над которым я работаю. Я хотел бы активировать Xdebug для размещенного проекта Symfony. Проблема в том, что мне нужен pecl для установки Xdebug, но я не знаю, где / как его добавить!
##
# Base
##
FROM debian:9-slim as base
ENV TERM="xterm"
DEBIAN_FRONTEND="noninteractive"
TIMEZONE="Europe/Paris"
COMPOSER_ALLOW_SUPERUSER=1
NODE_VERSION=8.12.0
PHP_VERSION=7.2
# System depdendencies
RUN apt-get update --quiet amp;amp;
apt-get install --quiet --no-install-recommends --yes
apt-transport-https
ca-certificates
lsb-release
wget amp;amp;
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg amp;amp;
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" >> /etc/apt/sources.list.d/php.list amp;amp;
apt-get update --quiet amp;amp;
apt-get install --quiet --no-install-recommends --yes
curl
git
nginx
php${PHP_VERSION}
php${PHP_VERSION}-apcu
php${PHP_VERSION}-curl
php${PHP_VERSION}-dom
php${PHP_VERSION}-fpm
php${PHP_VERSION}-gd
php${PHP_VERSION}-iconv
php${PHP_VERSION}-intl
php${PHP_VERSION}-mbstring
php${PHP_VERSION}-mysql
php${PHP_VERSION}-opcache
php${PHP_VERSION}-pdo
php${PHP_VERSION}-uuid
php${PHP_VERSION}-xml
php${PHP_VERSION}-simplexml
php${PHP_VERSION}-zip
supervisor
p7zip-full
tzdata
unzip
libxml2-dev
php${PHP_VERSION}-soap
vim amp;amp;
apt-get clean amp;amp;
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* amp;amp;
mkdir /run/php amp;amp;
cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime amp;amp;
echo "${TIMEZONE}" > /etc/timezone
# Composer
RUN curl -sS https://getcomposer.org/installer | php -- --version=1.10.9 --install-dir=/usr/local/bin --filename=composer amp;amp;
composer global require "hirak/prestissimo:^0.3" --prefer-dist --no-progress --no-suggest --classmap-authoritative amp;amp;
composer clear-cache
# Yarn
RUN curl -L -o /tmp/nodejs.tar.gz https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz amp;amp;
tar xfvz /tmp/nodejs.tar.gz -C /usr/local --strip-components=1 amp;amp;
rm -f /tmp/nodejs.tar.gz amp;amp;
npm install yarn -g
COPY .docker/php.ini /etc/php/${PHP_VERSION}/cli/conf.d/50-setting.ini
COPY .docker/php.ini /etc/php/${PHP_VERSION}/fpm/conf.d/50-setting.ini
COPY .docker/pool.conf /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf
COPY .docker/nginx.conf /etc/nginx/nginx.conf
COPY .docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
EXPOSE 80
CMD ["supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
WORKDIR /app
Я попытался добавить это в середину файла :
RUN pecl install xdebug
amp;amp; docker-php-ext-enable xdebug
Но процесс сборки завершается без подсказки!
Итак, я добавил это в конце :
FROM php:7.2-fpm
RUN pecl install
amp;amp; pecl install xdebug
amp;amp; docker-php-ext-enable xdebug
Ошибок нет, но Xdebug по-прежнему не работает (ничего в phpinfo)!
Что не так?
Комментарии:
1. Я не использую pecl много времени… но я хотел бы попытаться вам помочь … разве вы не должны поместить что-то между «install» и «» первой строки, которую вы пытаетесь добавить («pecl install «)? Вы пытались удалить «pecl install «?
2. при удалении первой строки ничего не произошло! Вы сказали, что не используете pecl, но когда я гуглю Xdebug, он всегда устанавливается с помощью pecl, есть ли другой метод?
3. Я запускаю «pecl install xdebug» в контейнере, созданном из образа docker «php: 7.2-fpm». Он был успешно установлен, но после того, как вы должны добавить «zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so» в php.ini . Вы это сделали?
4. Как можно использовать несколько образов docker? Как вы можете видеть, я использую «debian: 9-slim», и там нет pecl!
5. $ docker run -it —rm —name php7-test php: 7.2-fpm / bin / bash затем: $ pecl установите xdebug сейчас, у вас должен быть установлен xdebug. Взгляните на примечания в конце процедуры установки. Это очень простой вопрос для докеров. Я предлагаю вам взглянуть на официальную документацию dockerfile.