忘れるのでメモ。。。
[前提]
・使用するMACはWifi接続。(なので、ローカルのIPが変わる)
・PHPのイメージは、
を利用。
・eclipse,PDTは、インストール済みであること。
[前準備]
wifiの接続設定にaliasを追加する
1.システム環境設定→ネットワークを起動し、wifiを選択して、歯車アイコンのプルダウンから、
サービスの複製を選択する。
2.複製した設定にIPを設定する。
適当にIPを設定。
192.168.101.254
[Dockerコンテナ作成]
1.作業フォルダを作成。以下、ファイルは作業フォルダに作成。
2.php.iniを作成
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"
3.Dockerファイルを作成
FROM php:5.6-apache
COPY php.ini /usr/local/etc/php/php.ini
RUN set -ex apk --no-cache add postgresql-dev libpq-dev
RUN apt-get update && apt-get install -y libpq-dev curl emacs && docker-php-ext-install pdo pdo_pgsql mbstring zip
RUN pecl install xdebug \
&& rm -rf /tmp/pear \
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)\n" >> /usr/local/etc/php/conf.d/xdebug.ini \
\
&& echo "xdebug.remote_enable=1\n" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_mode=req\n" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_connect_back=0\n" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_host=192.168.101.254\n" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_autostart=on\n" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.idekey=ECLIPSE_DBGP\n" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_port=59590\n" >> /usr/local/etc/php/conf.d/xdebug.ini
※流用なので、pdo、emacs等関係ない設定あり。
※php.iniは、マウントせず、前述で用意したファイルをコピーすることにした。
※前述のネットワーク設定で複製したIPをXDEBUGに設定。
ポートは59590。
※eclipseを使うので、xdebug.idekey=ECLIPSE_DBGP。
4.ビルド実行
docker build -t php:xdebug_test ./
5.コンテナ起動。
docker run -p 80:80 -v /Users/XXXX/workspace/docker/hoge_xdebug/www/html:/var/www/html --name xdebug_test -d php:xdebug_test
※htmlフォルダはローカルのものをマウント。
ローカルのhtmlフォルダに、以下のPHPファイル(tktk.php)を準備し、ブラウザで確認。
<?php echo phpinfo();
ブラウザで
http://localhost/tktk.php
を呼び出し確認。
設定が反映されている。
[eclipse環境作成]
1.適当に、phpプロジェクトを作成。
※コンテナ上のPHPバージョンと合わせる事。
※ソースはコンテナにマウントしているフォルダをリンクする。
2.とりあえず、codeigniter3をダウンロードしてきて、HTMLフォルダ上に展開し、
インデックスが出るか確認。
とりあえず、インデックスページは出る。
3.eclipseのメニューからRun ->Debug Configurationsで新規デバッグ実行を作成。
※ソース位置とURLを合わせる。
ポートがあってないので(デフォルト:9000)、Configureボタンを押して、設定。
[デバッグ実行]
1.index.phpの適当な位置にブレークポイントを設定。
2.前述で作成したデバッグを実行する。
3.ブラウザで再び、インデックスページを呼び出すと、、、
設定したブレークポイントの位置でブレークしている。
多分、他のIDEでも、INIファイルのキーを変えてやれば、同じよーに動くはず。。。