Владимир
Баш скрипт может всё это сделать
Sergey
Смотря как собирать
Вообще у меня в проекте несколько модулей которые всобираются командой ./gradlw bootJar и потом запускается docker-composer
Владимир
Сначала gradlw, потом докер-композ
Владимир
Понятно, спасибо.
Это не панацея, а один из вариантов решения задачи)
Sergey
Это не панацея, а один из вариантов решения задачи)
а вообще что бы знать умеет ли докер выполнять какие нибудь команды не в контейнере?
Sergey
типо запусти мне ls -la до сборки хочу видть файлы в текущей папке
Владимир
а вообще что бы знать умеет ли докер выполнять какие нибудь команды не в контейнере?
Официальная документация очень подробная, сам таким не пользовался, но если это реально, то там обязательно это есть
Владимир
типо запусти мне ls -la до сборки хочу видть файлы в текущей папке
Внутри контейнера будет листинг делать, извне - сходу не скажу, не пробовал такое
Bohdan
еще multistage билды для этих целей хороши
Bohdan
как пример - mcuadros/ofelia на гитхабе там на го, но суть та же
Kirill
.NET Core тоже как пример подойдет
Kirill
Но репу сейчас не скажу точно
Anton
Привет. Есть такие, кто настраивал xDebug в PhpStorm для nginx + php-fpm контейнеров? 2 дня е**сь уже, никак не могу завести. И понять не могу, почему не робит. Исопльзую офф. образы
Дмитрий
Только у меня свой образ пыхи
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
ну порт я указал
Дмитрий
Я про галки
Дмитрий
Bohdan
connect_back в докере не работает нормально
у меня работало ок, но из-за необходимости дебажить cli использую remote_host
Anton
localhost?
Anton
а не remote_host?
Faust
Адрес докера глянь, у меня он стоит
Дмитрий
localhost?
Если порт проброшен
Bohdan
У меня в тестах не робит 😄
а тесты запускаешь ведь консолью)
Anton
Если порт проброшен
т.е. у тебя 9005 проброшен на 9000?
Дмитрий
А, стоп. Вру. Он не проброшен. 😄
neb0t
Ахаха. Директивы портс нету в композе... php: build: context: ./docker/php dockerfile: Dockerfile container_name: php volumes: - ./:/var/www/html restart: always
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
Bohdan
для php environment: XDEBUG_CONFIG: 'idekey=PHPSTORM' PHP_IDE_CONFIG: "serverName=docker"
Bohdan
порты наружу не торчат в шторме нужно настроить сервер
Bohdan
и соответственно его назвать
Anton
для php environment: XDEBUG_CONFIG: 'idekey=PHPSTORM' PHP_IDE_CONFIG: "serverName=docker"
вот это куда уходит? я что-то не понял
Anton
точней не так
Дмитрий
xdebug.remote_host=172.18.0.1 если сетка кастомная, лучше юзать host.docker.internal
Anton
где написать это я знаю
Bohdan
xdebug.remote_host=172.18.0.1 если сетка кастомная, лучше юзать host.docker.internal
чтобы была фикс сетка - создал свою с названием project_default и прописал ей подсеть) почитаю, спасибо где - то у меня ещё был способ решения этого вопроса
Bohdan
где написать это я знаю
что именно интересует?
Bohdan
это переменные окружения для образа php
Anton
что именно интересует?
а порт у тебя 9000 на xdebug? он же вроде как для php-fpm? не?
Bohdan
их вроде xdebug подхватит ну или шторм, не помню порт не менял, нигде вроде фпм тоже на 9000 висит и не жалуется но вроде бы суть в том, что в данном варианте xdebug коннектится к шторму, а не наоборот, потому на порт пофиг (могу ошибаться)
Anton
что именно интересует?
интересует, куда они уходят потом, потому что в офф.доке такого не нашел
Bohdan
тогда шторм ловит их, скорее всего idekey - это вообще для ide, а server_name - точно для шторма
Bohdan
он на основании этого вроде маппинги делает (на основании конфига сервера)
Anton
xdebug.remote_host=172.18.0.1 а это ip контейнера php? или сетки?
Vladimir
remote_host это ip хоста с ide
Anton
до этого в xdebug.ini указывал IP хоста, ide_key и все, все работало)) но это в самописном dockerfile. а тут чот бубен нужен
Anton
такс.. заработало. поймал бряку
Anton
и cli тоже бряку ловит
Anton
спасибо вам большое, ребятки) 😃✋️
Anton
еще подскажите, пожалуйста. в xdebug.remote_host я задал ip хоста, который взял из ifconfig. Но если я подключусь к другой сети wi-fi он изменится и приходится xdebug.remote_host менять
Anton
это не норм ведь?)