You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dockware Shopware 6 Storefront无法自动重载问题求助

Dockware容器中Storefront自动重载失败,WebSocket连接ws://localhost:9999/ws失败

问题详情

在dockware容器内执行make watch-storefront命令后:

  • 可通过localhost:9998访问Storefront,手动刷新能正常看到修改内容
  • Storefront无法自动重载,浏览器控制台报错:WebSocket connection to 'ws://localhost:9999/ws' failed

环境信息

  • 设备:Apple Macbook Pro(M1 Pro芯片)
  • 浏览器:Google Chrome v127.0.6533.120
  • Dockware配置:
services:
  shopware:
    image: dockware/dev:6.6.1.0
    container_name: shopware
    ports:
      - "22:22"     # ssh
      - "82:80"     # apache2
      - "444:443"   # apache2 https
      - "8888:8888" # watch admin
      - "9998:9998" # watch storefront proxy
      - "9999:9999" # watch storefront
      - "3307:3306" # mysql port
    networks:
      - web
    volumes:
      - "./src/vendor:/var/www/html/vendor"
    environment:
      - XDEBUG_ENABLED=1
networks:
  web:
    external: false

可能的解决方案

1. 检查容器内WebSocket服务状态

  • 进入容器:docker exec -it shopware bash
  • 查看9999端口监听情况:netstat -tulpn | grep 9999,确认watch-storefront对应的进程在正常运行
  • 查看make watch-storefront的输出日志,排查是否有WebSocket服务启动失败的报错信息

2. 修正Storefront的Webpack Dev Server配置

  • 容器内找到Storefront的Webpack配置文件(通常路径为/var/www/html/vendor/shopware/storefront/Resources/app/storefront/webpack.config.js,或自定义主题的webpack配置文件)
  • 检查devServer配置项:
    • 将host设置为0.0.0.0(允许外部容器访问),而非默认的localhost
    • 确认public配置指向http://localhost:9999,与端口映射保持一致

3. 排查端口与网络问题

  • 检查宿主机9999端口是否被占用:lsof -i :9999(MacOS命令),若被占用则停止对应进程或修改dockware端口映射
  • 直接访问http://localhost:9999,确认Webpack Dev Server是否正常响应
  • 关闭VPN或代理工具,M1芯片Mac的Docker网络可能受此类工具影响

4. 清除缓存并重启服务

  • 容器内执行bin/console cache:clear清除Shopware缓存
  • 停止当前make watch-storefront进程,重新启动
  • 清除浏览器缓存或使用无痕模式测试

内容的提问来源于stack exchange,提问作者Donny van Grondelle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 03:42:04