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

本地正常但Gitlab运行Cypress测试报错:CreatePlatformSocket()失败(97)求助

解决Gitlab CI中Cypress测试的CreatePlatformSocket()错误

这个错误是Gitlab CI环境中网络协议支持问题导致的,以下是几种可行的排查和解决方法:

  • 强制Cypress使用IPv4
    多数情况下,问题源于CI环境禁用了IPv6,而Cypress默认尝试使用IPv6创建socket。可以通过环境变量强制切换到IPv4:
    在Gitlab CI脚本中添加:

    export CYPRESS_FORCE_IPV4=true
    npx cypress run
    

    或者在Gitlab Runner的config.toml配置文件中全局设置环境变量:

    [[runners]]
      environment = ["CYPRESS_FORCE_IPV4=true"]
    
  • 给Chrome内核浏览器添加禁用IPv6参数
    如果测试使用Chrome或Edge浏览器,可在Cypress配置中添加启动参数强制禁用IPv6:
    在cypress.config.js中修改:

    const { defineConfig } = require('cypress')
    
    module.exports = defineConfig({
      e2e: {
        setupNodeEvents(on, config) {
          on('before:browser:launch', (browser, launchOptions) => {
            if (browser.family === 'chromium' && browser.name !== 'electron') {
              launchOptions.args.push('--disable-ipv6')
              return launchOptions
            }
          })
        },
      },
    })
    
  • 更换合适的CI镜像
    避免使用过于精简的基础镜像(如Alpine),这类镜像可能缺少必要的网络组件支持。改用Cypress官方提供的debian-based镜像,比如cypress/included:latest,镜像已预配置好测试所需的所有依赖和网络环境。

  • 检查Runner主机的网络配置
    如果Gitlab Runner部署在物理机/虚拟机上,确认主机是否禁用了IPv6,或者防火墙规则是否阻止了socket创建。可临时启用IPv6测试,或调整防火墙允许相关网络操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:01:01