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

Mac系统Docker运行Cypress 10.9时出现服务器验证失败错误

解决Docker Cypress无法访问本地非容器化Apache的问题
  • 核心原因:Docker容器内的localhost指向容器自身的回环地址,而非Mac主机的localhost。你在容器终端ping通的localhost是容器内部的地址,和运行Apache的Mac主机不是同一个环境。

  • 解决方案1:使用Docker内置的主机别名
    将CYPRESS_BASE_URL的值改为http://host.docker.internal(Apache在80端口,默认可省略端口号)。这个别名是Docker for Mac专门提供的,用于让容器直接访问Mac主机上的服务。

    可以直接在docker-compose.yml中指定该值:

    version: '3'
    
    services:
      e2e:
        build:
          context: .
          dockerfile: Dockerfile
        environment:
          CYPRESS_BASE_URL: http://host.docker.internal
          CYPRESS_USERNAME: $CYPRESS_USERNAME
          CYPRESS_PASSWORD: $CYPRESS_PASSWORD
        volumes:
          - ./:/e2e
    

    或者保持环境变量传入,将CYPRESS_BASE_URL的值设为http://host.docker.internal后再执行容器命令。

  • 解决方案2:确认Apache的监听地址
    检查Apache的配置文件(如httpd.conf或000-default.conf),确保监听地址是0.0.0.0:80而非仅127.0.0.1:80。如果Apache只绑定主机的回环地址,即使容器通过host.docker.internal访问,也无法建立连接。

    修改配置后重启Apache:

    sudo apachectl restart
    
  • 解决方案3:检查Mac防火墙设置
    进入Mac「系统设置」→「网络」→「防火墙」,确认允许Apache(或httpd)接收传入连接,同时确保Docker应用拥有网络访问权限,避免防火墙拦截容器对主机80端口的请求。

内容的提问来源于stack exchange,提问作者ray805

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:35:25