Владимир
Баш скрипт может всё это сделать
Sergey
Смотря как собирать
Вообще у меня в проекте несколько модулей которые всобираются командой ./gradlw bootJar и потом запускается docker-composer
Владимир
Владимир
Сначала gradlw, потом докер-композ
Sergey
Sergey
типо запусти мне ls -la до сборки хочу видть файлы в текущей папке
Bohdan
еще multistage билды для этих целей хороши
Bohdan
как пример - mcuadros/ofelia на гитхабе
там на го, но суть та же
Kirill
.NET Core тоже как пример подойдет
Kirill
Но репу сейчас не скажу точно
Anton
Привет. Есть такие, кто настраивал xDebug в PhpStorm для nginx + php-fpm контейнеров?
2 дня е**сь уже, никак не могу завести. И понять не могу, почему не робит. Исопльзую офф. образы
Faust
Дмитрий
Дмитрий
Только у меня свой образ пыхи
Anton
docker-compose
version: '3'
services:
nginx:
image: nginx:1.15
container_name: nginx
ports:
- 80:80
- 443:443
volumes:
- ./docker/nginx/conf.d:/etc/nginx/conf.d
- ./:/var/www/html
- ./logs/nginx:/var/www/log:rw
links:
- php
restart: always
php:
build:
context: ./docker/php
dockerfile: Dockerfile
container_name: php
volumes:
- ./:/var/www/html
restart: always
Anton
Dockerfile
FROM php:7.2-fpm
ENV XDEBUG_ENABLED 0
RUN apt-get update && \
apt-get install -y \
zlib1g-dev \
libcurl3-dev && \
pecl install xdebug && \
docker-php-ext-install \
zip \
curl \
pdo_mysql && \
docker-php-ext-enable xdebug
COPY conf.d/ /usr/local/etc/php/conf.d/
EXPOSE 9000 9001
CMD ["php-fpm"]
Anton
xdebug.ini
xdebug.remote_enable = 0
xdebug.remote_autostart = 0
xdebug.remote_port = 9001
xdebug.idekey = PhpStorm
Anton
Дмитрий
Anton
почему?
Дмитрий
# Set xDebug
RUN echo "xdebug.remote_autostart=$XDEBUG_STATE" > $PHP_INI_DIR/conf.d/xdebug.ini \
&& echo "xdebug.remote_enable=$XDEBUG_STATE" >> $PHP_INI_DIR/conf.d/xdebug.ini \
&& echo "xdebug.default_enable=$XDEBUG_STATE" >> $PHP_INI_DIR/conf.d/xdebug.ini \
&& echo 'xdebug.idekey=PHPSTORM' >> $PHP_INI_DIR/conf.d/xdebug.ini \
&& echo 'xdebug.remote_host="host.docker.internal"' >> $PHP_INI_DIR/conf.d/xdebug.ini \
&& echo 'xdebug.remote_handler=dbgp' >> $PHP_INI_DIR/xdebug.ini \
&& echo "xdebug.remote_port=$XDEBUG_PORT" >> $PHP_INI_DIR/conf.d/xdebug.ini \
# Disable xDebug for none local builds
&& sh -c "if [[ $XDEBUG_STATE = 'Off' ]] ; then sed -i '1s/^/;/' $PHP_INI_DIR/conf.d/00_xdebug.ini ; fi"
Bohdan
тоже настаивал
Дмитрий
Это правда мой конфиг) сути не меняет, у тебя IP адреса нет, куда ему запросы слать
Anton
да я и remote_host указывал, и без него
Bohdan
либо connect_back нужно, либо remote_host
но первый не работает с cli
Дмитрий
connect_back в докере не работает нормально
Anton
у меня есть рабочий вариант apache+php (ubuntu образ). Там все ок робит))
а тут не хочет
Дмитрий
И вот еще что нужно сделать, а то замучаешься
Дмитрий
Anton
Дмитрий
Я про галки
Дмитрий
Anton
Дмитрий
Anton
а не remote_host?
Faust
Адрес докера глянь, у меня он стоит
Дмитрий
А, стоп. Вру. Он не проброшен. 😄
neb0t
Ахаха. Директивы портс нету в композе...
php:
build:
context: ./docker/php
dockerfile: Dockerfile
container_name: php
volumes:
- ./:/var/www/html
restart: always
Anton
Дмитрий
Bohdan
neb0t
значит локально служба работает или запущена раньше была. Страдайте
Дмитрий
Наоборот нельзя пробрасывать порт xDebug, потому что он занят уже слушателем PhpStorm
Anton
ога, есть такое
Bohdan
конфиг xdebug
;zend_extension=xdebug.so
xdebug.remote_enable=on
xdebug.remote_connect_back=off
xdebug.remote_host=172.18.0.1
xdebug.coverage_enable=off
xdebug.profiler_enable = false
xdebug.profiler_enable_trigger = true
Faust
Bohdan
для php
environment:
XDEBUG_CONFIG: 'idekey=PHPSTORM'
PHP_IDE_CONFIG: "serverName=docker"
Bohdan
порты наружу не торчат
в шторме нужно настроить сервер
Bohdan
и соответственно его назвать
Anton
Anton
точней не так
Дмитрий
xdebug.remote_host=172.18.0.1
если сетка кастомная, лучше юзать host.docker.internal
Anton
где написать это я знаю
Дмитрий
Bohdan
это переменные окружения для образа php
Bohdan
их вроде xdebug подхватит
ну или шторм, не помню
порт не менял, нигде вроде
фпм тоже на 9000 висит и не жалуется
но вроде бы суть в том, что в данном варианте xdebug коннектится к шторму, а не наоборот, потому на порт пофиг (могу ошибаться)
Bohdan
тогда шторм ловит их, скорее всего
idekey - это вообще для ide, а server_name - точно для шторма
Bohdan
он на основании этого вроде маппинги делает (на основании конфига сервера)
Anton
xdebug.remote_host=172.18.0.1
а это ip контейнера php? или сетки?
Vladimir
remote_host это ip хоста с ide
Bohdan
Дмитрий
Anton
до этого в xdebug.ini указывал IP хоста, ide_key и все, все работало)) но это в самописном dockerfile.
а тут чот бубен нужен
Anton
такс.. заработало. поймал бряку
Anton
и cli тоже бряку ловит
Anton
спасибо вам большое, ребятки) 😃✋️
Anton
еще подскажите, пожалуйста.
в xdebug.remote_host я задал ip хоста, который взял из ifconfig.
Но если я подключусь к другой сети wi-fi он изменится и приходится xdebug.remote_host менять
Anton
это не норм ведь?)