2017-04-10 12 views
3

私はDockerでPHPアプリケーションを実行していますが、XDebugを使用してデバッグしたいと思います。私のドッキングウィンドウ・コンで 私はphpfpm部分に以下の行を追加:XDEBUG_CONFIG環境変数を無視するXdebug(内部のDockerコンテナ)

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" 

を、私は、正しい方法でPHPStormを設定したポート9000でリッスンし、アプリケーションを実行しました。

アプリケーションは完璧に動作しますが、XDebugは機能していないようです。

php.iniファイル内で設定行を移動すると、サーバー名が空でデバッグできないという点を除いて、デバッガが機能します(ドッキングできない設定方法に従って試しています)。

ドッカーコンテナ内でecho $ XDEBUG_CONFIGを実行すると、出力は正しくなりますが、XDebugはそのEnv変数を読み取れないようです。

+0

1)Webページのデバッグを行っていますか?もしそうなら、そこにサーバ名を設定してください(特にnginxの場合は非常に頻繁に空白になります)。 2)どのようにコンテナを発射しますか?つまり、PhpStormをこれに使用しているのですか、それとも外部から管理していますか(例えば端末)? https://youtrack.jetbrains.com/issue/WI-33800 – LazyOne

+0

1)はい、私はウェブページをデバッグしています。はい、nginxのサーバー名は定義されていません。コードがコンテナ内にないので、私は単一のドッカーを持っています。私のプロジェクトのすべてを対象としており、私はそれを変更するつもりはない。 2)私はphpstorm外のターミナルでdocker-composeを使用しています。 これは私の質問に答えることはできませんが、XDEBUG_CONFIGがコンテナ内のxdebugによって読み取られない理由を理解できません – sangio90

答えて

2

私は同じ問題を抱えていました。私の画像はnimmis/alpine-apache-php7/に基づいていました。画像がsupervisorを使用してプロセスを開始していることがわかりました。 supervisorにはDocker環境変数についての知識がありません。

supervisorにプロセスを実行する必要があると伝える慣例は、/etc/sv/{process}/runrunスクリプトを作成することです。 A script like thisがApacheの起動に使用されました。 Apacheを起動する前にDocker環境変数をインポートするようにスクリプトを変更する必要がありました。 -

source /etc/envvars

を追加

あなたがドッキングウィンドウのコマンドラインからの環境変数が必要な場合は(ENV = [] -e):

docs for the base imageはドッカー環境をインポートするための規則を説明

をスクリプトファイルで使用する前に

my own custom run script for Apache - httpdの実行直前にsource /etc/envvarsを追加しました。

私はmy DockerfileにシンプルCOPYを追加することにより、the original run scriptを上書き:

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

これが正常に私の$XDEBUG_CONFIGは、それが開始された時点でhttpdに見えたことを確実にしました。 Webページにphpinfo();を印刷して、これが私のPHP設定に影響を与えていることを確認できました。 env[XDEBUG_CONFIG] = $XDEBUG_CONFIG

フル参照してください:私にとって

0

phpinfo();でしたか?それはあなたの設定を使用する必要があります。

私は同じ問題を抱えていました...私を永遠に把握してください。 xdebug.remote_connect_back=1を使用していますか?もしそうなら、その行を削除します。

私のnginxプロキシが(それは間違っていた)IPを転送していたので、XDEBUG_CONFIGのIPセットは無視されていました。

0

は、それは私がFPMプールの設定にはXdebug-CONFIGを追加するために必要な(FROM php:7-fpm-alpine

公式PHP-FPM-アルパインのドッキングウィンドウの画像を使用して別の問題でしたconfig https://github.com/attrib/docker-symfony

関連する問題