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

Docker运行Selenium Chrome驱动报错:Server terminated early with status 127

解决方案

1. 更换基础镜像

selenium/hub仅作为Selenium节点管理服务,本身未预装Chrome浏览器和ChromeDriver,无法直接运行浏览器测试。改用包含Chrome的独立镜像:

FROM selenium/standalone-chrome:nightly

2. 清理权限与冗余命令

基础镜像默认用户seluser已有足够权限,移除所有sudo避免权限冲突,同时合并命令减少镜像层数:

WORKDIR /usr/src/app

RUN apt-get update && apt-get install -y curl

COPY . /usr/src/app/

RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
RUN apt-get install nodejs -y

3. 安装npm依赖

测试运行需要项目依赖包,在Dockerfile中添加安装步骤,同时利用Docker缓存优化构建速度:

# 先复制依赖配置文件,缓存依赖安装层
COPY package*.json ./
RUN npm install

# 再复制其余项目文件
COPY . .

4. 修复启动脚本权限

确保start.sh具备可执行权限:

RUN chmod +x ./start.sh

5. 调整Docker运行参数

  • 移除-d后台运行参数,方便实时查看测试日志
  • 添加--shm-size=2g解决Chrome容器运行时共享内存不足问题
    修改后的run.sh:
#!/usr/bin/env bash
docker build --platform linux/x86_64 -t selenium_automation_tests .
docker run --platform linux/x86_64 --shm-size=2g -p 4442-4444:4442-4444 -it selenium_automation_tests

6. 核对测试代码的Selenium配置

确保测试代码适配容器内的Chrome环境:

  • 若代码指定了Chrome路径,改为容器内路径/usr/bin/google-chrome
  • selenium/standalone-chrome已预装对应版本的ChromeDriver,测试代码可直接调用,无需额外配置路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 11:02:37