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

Docker容器中Selenium Chrome Driver异常退出(状态码255)求助

解决Docker中ChromeDriver意外退出(状态码255)的问题

核心原因

你使用的python:3.11.4-slim是轻量镜像,缺少Chrome浏览器本体,同时缺失Chrome运行必需的系统依赖库,另外WebDriver的部分参数在容器环境下不适用,导致驱动启动失败。

修复步骤

1. 更新Dockerfile,安装Chrome及系统依赖

在镜像中补充安装Chrome浏览器和必要的系统库,确保Chrome能在容器环境正常运行:

FROM python:3.11.4-slim

WORKDIR /app

# 安装系统依赖与Chrome浏览器
RUN apt-get update && apt-get install -y --no-install-recommends \
    chromium \
    chromium-driver \
    libglib2.0-0 \
    libnss3 \
    libgconf-2-4 \
    libfontconfig1 \
    && rm -rf /var/lib/apt/lists/*

COPY elasticModule.py /app/elasticModule.py
COPY slackMessage.py /app/slackMessage.py
COPY elasticMain.py /app/elasticMain.py
COPY requirements.txt /app/requirements.txt

RUN pip install -r requirements.txt

CMD ["python", "elasticMain.py"]

2. 调整WebDriver初始化参数

移除容器环境下无用的detach参数,添加解决容器共享内存不足的配置,同时直接使用系统安装的chromedriver(无需通过ChromeDriverManager下载):

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()   
# 移除detach参数,容器环境不需要维持浏览器进程脱离
options.add_argument("--headless=new")  # 使用新版无头模式,兼容性更优
options.add_argument("--no-sandbox")
options.add_argument("--disable-gpu")
options.add_argument("--disable-dev-shm-usage")  # 解决容器/dev/shm空间不足问题

# 直接调用系统安装的chromedriver,默认路径为/usr/bin/chromedriver
driver = webdriver.Chrome(options=options)    

driver.get(url)

3. 确认依赖版本兼容性

确保requirements.txt中的selenium版本(建议用4.x以上)与安装的Chrome版本匹配,避免版本不兼容引发的启动异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:57:47