Laravel Sail环境运行Dusk测试时9515端口连接拒绝的解决方法
解决Laravel Sail + Dusk 连接9515端口被拒的问题
核心原因
错误里的localhost:9515是Dusk默认尝试连接ChromeDriver的地址,但在Docker容器内部,localhost指向容器自身,而容器内未启动ChromeDriver,或是Sail环境未配置对应的Chrome服务。
具体修复步骤
1. 完善Sail的Docker Compose配置
打开项目根目录的docker-compose.yml,确认是否包含chrome服务块,没有则添加:
chrome: image: selenium/standalone-chrome:latest extra_hosts: - "host.docker.internal:host-gateway" volumes: - "/dev/shm:/dev/shm" networks: - sail
添加后重启Sail:
sail down sail up -d
2. 修改Dusk测试配置
打开tests/DuskTestCase.php,找到driver方法,将ChromeDriver连接地址改为容器服务名chrome(对应端口为Selenium默认的4444):
protected function driver() { $options = (new ChromeOptions)->addArguments([ '--disable-gpu', '--headless=new', '--window-size=1920,1080', ]); return RemoteWebDriver::create( 'http://chrome:4444/wd/hub', DesiredCapabilities::chrome()->setCapability( ChromeOptions::CAPABILITY, $options ) ); }
3. 校准应用URL配置
在.env和.env.dusk.local文件中,确保APP_URL与Sail访问地址一致,例如:
APP_URL=http://localhost
4. 重新执行测试
运行命令:
sail dusk
额外检查项
- 宿主机默认浏览器为Firefox不影响测试,Docker环境使用的是容器内独立的Chrome服务。
- 若问题仍存在,检查容器运行状态:
sail ps
确认chrome容器状态为Up。
内容的提问来源于stack exchange,提问作者Brainmaniac
相关产品推荐
相关产品推荐

