Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

423
Visualizações
Xdebug (inside Docker container) ignoring XDEBUG_CONFIG environment variable

I'm running a PHP application on Docker and I'd like to debug it using XDebug. In my docker-compose I added the following lines in the phpfpm part:

environment:
      XDEBUG_CONFIG: "remote_enable=1 remote_host=192.168.110.29 remote_port=9000 idekey=PHPSTORM remote_autostart=1"
      PHP_IDE_CONFIG: "serverName=reports.dev"

I configured PHPStorm in the right way, listening on port 9000 and ran the application.

The application works flawlessly but XDebug doesn't seem to be working.

If I move the lines of configuration inside the php.ini file the debugger works, except for the fact that Server Name is empty and I cannot debug (that's why I tried following the docker-compose configuration way).

If, inside the docker container, I run echo $XDEBUG_CONFIG the output is right, but XDebug seems not to read that Env variable.

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

I had the same problem. My image was based on nimmis/alpine-apache-php7/. I found that the image was using supervisor to start processes. supervisor has no knowledge of the Docker environment variables.

The convention to tell supervisor that a process needs to be run, is to create a run script at /etc/sv/{process}/run. A script like this was used to start Apache. I needed to change the script so that it would import Docker environment variables before starting Apache.

The docs for the base image explain the convention for importing Docker environment:

If you need environment variables from the docker command line (-e,--env=[]) add

source /etc/envvars

before you use them in the script file

So I created my own custom run script for Apache — I added source /etc/envvars just before execution of httpd.

I overwrote the original run script, by adding a simple COPY to my Dockerfile:

COPY apache-run.sh /etc/sv/apache2/run

This successfully ensured that my $XDEBUG_CONFIG was visible to httpd at the time it was launched. I was able to confirm that this affected my PHP configuration, by printing phpinfo(); in a webpage.

about 4 years ago · Santiago Trujillo Relatório

0

Did you do a phpinfo();? That should tell you the settings used.

I had the same problem... took me forever to figure out. Are you using xdebug.remote_connect_back=1? If so remove that line.

My nginx proxy was forwarding an IP through (which was wrong) and so the ip set in XDEBUG_CONFIG was being ignored.

about 4 years ago · Santiago Trujillo Relatório

0

For me it was a different problem using the official PHP-FPM-Alpine docker image (FROM php:7-fpm-alpine)

I needed to add the XDEBUG-CONFIG to the fpm pool config: env[XDEBUG_CONFIG] = $XDEBUG_CONFIG

See full config https://github.com/attrib/docker-symfony

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda