php - Docker Compose and Xdebug not working in PhpStorm
I've tried many things trying to let work Xdebug in a Docker container. I came in contact with these resources:
- Setting up Xdebug with Docker Compose and WordPress image
- Installing XDebug in Docker
- Starting The Debugger
- Zero-configuration Web Application Debugging with Xdebug and PhpStorm
- Xdebug & Zend Debugger bookmarklets generator for PhpStorm
- Configure Xdebug
- Troubleshooting common PHP debugging issues
- .. and other
I think the problem is either something with the ports that I don't understand, or it is something with the debugger session not being started or recognized. For the debugger session I have also tried to install a browser extension that sets a cookie.
I ended up at least to have separate containers, one as dev container with enabled Xdebug.
docker-compose.yml
version: "3"
services:
production:
build: .
ports:
- "8000:80"
volumes:
- .:/var/www/html
development:
build: .
ports:
- "8080:80"
# - "10000:80" also not working
volumes:
- .:/var/www/html
- ./dev.php.ini:/usr/local/etc/php/php.ini
Dockerfile
FROM php:7.4.0-apache
RUN pecl install xdebug \
&& docker-php-ext-enable xdebug
dev.php.ini
xdebug.remote_enable=on
xdebug.remote_host=host.docker.internal
xdebug.remote_port=10000
xdebug.idekey=PHPSTORM
localhost:8080 phpinfo data
PhpStorm config
Any ideas?
Answer
Solution:
After booting up my machine to investigate further with the comments of @abestrad and @LazyOne, without changing anything, opening localhost:8080 suddenly let the debugging work by stoping at the breakpoint that i have set. Actually I had already tried to restart the Docker Desktop App before writing the question, maybe at that point my configurations were at a wrong state.
But at the end the solution was: Restarting the PC.
Watch out
To be sure i tried to open it also in a private browser session and it wasn't working anymore. That was because the special cookie still was set in the normal browser store (cookie that was stored either from the Browser extension that I have already uninstalled, or from trying out the JetBrains Bookmarklets generator before writing the question).
The solution to let it work everytime was to add following:
Citate from here: