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

如何在Dockerfile中修复ChromeDriver与Google Chrome版本不兼容问题

ChromeDriver与Chrome版本不匹配问题的解决方法

问题背景

作为Docker新手,构建包含Google Chrome和ChromeDriver的项目镜像时,出现版本不兼容报错:ChromeDriver版本114仅支持Chrome 114,但实际安装的Chrome版本为116.0.5845.110,且原Dockerfile使用的chromedriver.storage.googleapis.com已不再受支持。

原Dockerfile相关代码:

# install google chrome
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
RUN apt-get -y update
RUN apt-get install -y google-chrome-stable

# install chromedriver
RUN apt-get install -yqq unzip
RUN wget -O /tmp/chromedriver.zip http://chromedriver.storage.googleapis.com/`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE`/chromedriver_linux64.zip
RUN unzip /tmp/chromedriver.zip chromedriver -d /usr/local/bin/

报错信息:

selenium.common.exceptions.SessionNotCreatedException: Message:
session not created: This version of ChromeDriver only supports Chrome
version 114 Current browser version is 116.0.5845.110 with binary path
/opt/google/chrome/google-chrome Stacktrace:
#0 0x56061f6b04e3
#1 0x56061f3dfc76
#2 0x56061f40d04a
#3 0x56061f4084a1
#4 0x56061f405029
#5 0x56061f443ccc
#6 0x56061f44347f
#7 0x56061f43ade3
#8 0x56061f4102dd
#9 0x56061f41134e
#10 0x56061f6703e4
#11 0x56061f6743d7
#12 0x56061f67eb20
#13 0x56061f675023
#14 0x56061f6431aa
#15 0x56061f6996b8
#16 0x56061f699847
#17 0x56061f6a9243
#18 0x7f72cb9de044

解决方法

修改Dockerfile,先安装Chrome并提取其主版本号,再下载对应版本的ChromeDriver(使用官方最新的Chrome for Testing下载源),确保版本完全兼容:

# 安装Google Chrome
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
RUN apt-get update && apt-get install -y google-chrome-stable

# 提取Chrome的主版本号(例如从116.0.5845.110提取116.0.5845)
RUN CHROME_VERSION=$(google-chrome --version | grep -oP '\d+\.\d+\.\d+\.\d+' | cut -d. -f1-3)

# 安装对应版本的ChromeDriver(使用官方Chrome for Testing下载源)
RUN apt-get install -yqq unzip
RUN wget -O /tmp/chromedriver.zip "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/$CHROME_VERSION/linux64/chromedriver-linux64.zip"
RUN unzip /tmp/chromedriver.zip chromedriver-linux64/chromedriver -d /tmp/
RUN mv /tmp/chromedriver-linux64/chromedriver /usr/local/bin/
RUN chmod +x /usr/local/bin/chromedriver

代码优化(可选)

如果项目使用Selenium 4.6及以上版本,可以借助Selenium的自动Driver管理功能,无需手动指定ChromeDriver路径,进一步简化代码:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')

# Selenium 4.6+ 自动适配ChromeDriver,无需手动指定路径
driver = webdriver.Chrome(service=Service(), options=options)

说明

  • 原chromedriver.storage.googleapis.com已被废弃,官方推荐使用Chrome for Testing的下载源,确保获取到与Chrome版本完全匹配的ChromeDriver。
  • 通过提取已安装Chrome的版本号来下载对应ChromeDriver,可避免版本不一致问题,保证每次构建镜像时两者版本同步。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 03:29:51