本镜像为Dce作者封装的用于Dce框架的Swoole镜像,但也兼容普通Swoole或PHP cli程序,欢迎体验。本镜像继承自Swoole官方PHP8.1的alpine镜像, 在该镜像基础上增装了pdo_mysql, redis等PHP扩展。
瘦镜像,普通swoole镜像,仅增装了pdo_mysql, redis扩展
普通镜像,比瘦镜像增装了gmp, gd, imagick扩展
开发环境镜像,比普通镜像增装了Swoole官方推荐的调试工具包,方便开发调试
没在下表中的配置不支持以环境变量传递,但你可以映射宿主机文件到容器以覆盖配置,路径为/usr/local/etc/php/conf.d/docker-php-ext-yasd.ini
,配置相关说明文档请到yasd官方维基查看
yasd配置名 | 镜像环境变量 | 默认值 |
---|---|---|
debug_mode | DEBUG_MODE | remote |
remote_host | DEBUG_HOST | 127.0.0.1 |
remote_port | DEBUG_PORT | 44444 |
log_level | DEBUG_LOG | -1 |
max_executed_opline_num | DEBUG_OPLINE | 10000 |
-
在Phpstorm中设置xdebug监听端口为44444,并启动监听
-
在设置“PHP->servers”下添加名为dce的服务器并映射开发与调试脚本路径
-
指定监听端口到环境变量,启动容器
docker run --rm --privileged --name dce -it -e "DEBUG_HOST=${你的宿主机IP}" -v ${项目目录}:/app -p ${服务端口}:20461 idrunk/swoole:debug -e /app/dce websocket start
-
启动容器时若提示“check listening state”,可能是由于防火墙阻挡,你可以关闭防火墙。
-
若你想开启防火墙,通过配置入站规则允许调试,可能需先删除Phpstorm自动配置的防火墙规则。
-
如果你在上述“remote用法第2点”时添加的服务器名不为dce,请在启动容器时指定环境变量“-e PHP_IDE_CONFIG="serverName=${你添加的服务器名}"”
docker exec -it dce tcpdump -i any tcp port 20461
docker exec -it dce strace -f -p ${PID}
docker exec -it dce gdb -p ${PID}
docker exec -it dce gdb -p ${PID}
source /usr/src/php/.gdbinit
zbacktrace
docker exec -it dce lsof -p ${PID}
docker exec -it dce perf top -p ${PID}