在對運行在容器中的環(huán)境進(jìn)行debug,可以通過網(wǎng)頁和腳本倆種方式進(jìn)行debug,
這里介紹下對容器中的腳本進(jìn)行debug。
xdebug的原理了解。

xdebug是php的擴(kuò)展,會搜集php執(zhí)行的信息,然后發(fā)送給指令的遠(yuǎn)程ip+port。這里通常我們使用的開發(fā)工具會監(jiān)聽某個port。接受到php執(zhí)行信息。再debug界面進(jìn)行顯示。
首先,容器中的php環(huán)境需要有安裝好xdebug擴(kuò)展并且配置好,這里對應(yīng)的image名稱為php_sk。

這是運行的容器,/etc/docker/daemon.josn為使用api訪問docker的配置(目的是使phpstorm能訪問到容器)
,這里由于是測試環(huán)境,沒做訪問控制。

虛擬機(jī)安裝在VirtualBox里,網(wǎng)絡(luò)為NAT模式,通過端口轉(zhuǎn)發(fā)和內(nèi)部進(jìn)行通信

通過對端口2375的轉(zhuǎn)發(fā),瀏覽器可以訪問到api

設(shè)置debug端口,默認(rèn)9000

配置phpstorm里的docker訪問參數(shù)

這時候可以看到虛擬機(jī)中的容器,可以進(jìn)行啟動,暫停,和訪問


選擇php版本,和命令行訪問模式,選擇docker,找到php對應(yīng)的image

配置對應(yīng)的目錄,設(shè)置的name,在后面執(zhí)行腳本會使用到

配置debug,由于是命令行執(zhí)行腳本,選擇php script

連接至虛擬機(jī),執(zhí)行腳本(/home/www/sk/html/index.php),ip替換成phpstorm所在主機(jī)的ip
復(fù)制代碼 代碼如下:
docker run --rm -v /home/www:/home/www --env "XDEBUG_CONFIG=remote_host=10.249.22.204 remote_port=9010" --env "PHP_IDE_CONFIG=serverName=new" php_sk php /home/www/sk/html/index.php

可以看到,已經(jīng)可以對腳本進(jìn)行debug了
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。