Dockerfile部署Python应用:ChromeDriver与Chrome版本不匹配问题求助
解决ChromeDriver与Chrome版本不匹配问题
问题根源
你的Dockerfile先安装了最新版本的ChromeDriver,再安装Chrome稳定版,但当前Chrome稳定版尚未更新到ChromeDriver对应的版本(110),导致两者版本不兼容,触发连接报错。
修复方案
修改Dockerfile的安装顺序,先安装Chrome,再根据已安装Chrome的实际版本下载对应版本的ChromeDriver,确保两者版本完全匹配。
修改后的Dockerfile
FROM python:3.9 # 先安装Chrome稳定版 RUN curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \ echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list && \ apt-get -yqq update && \ apt-get -yqq install google-chrome-stable && \ rm -rf /var/lib/apt/lists/* # 获取已安装Chrome的主版本号,下载对应版本的ChromeDriver RUN CHROME_VERSION=$(google-chrome --version | grep -oP '\d+' | head -n1) && \ CHROMEDRIVER_VERSION=$(curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE_$CHROME_VERSION) && \ mkdir -p /opt/chromedriver-$CHROMEDRIVER_VERSION && \ curl -sS -o /tmp/chromedriver_linux64.zip http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip && \ unzip -qq /tmp/chromedriver_linux64.zip -d /opt/chromedriver-$CHROMEDRIVER_VERSION && \ rm /tmp/chromedriver_linux64.zip && \ chmod +x /opt/chromedriver-$CHROMEDRIVER_VERSION/chromedriver && \ ln -fs /opt/chromedriver-$CHROMEDRIVER_VERSION/chromedriver /usr/local/bin/chromedriver WORKDIR /app COPY ./requirements.txt . COPY ./ . RUN python -m pip install --upgrade pip RUN pip install -r requirements.txt CMD ["python","main.py"]
关键改动说明
- 调整安装顺序:先完成Chrome的安装,再处理ChromeDriver
- 通过
google-chrome --version提取已安装Chrome的主版本号,再用LATEST_RELEASE_$CHROME_VERSION获取对应版本的最新ChromeDriver,确保版本完全匹配 - 其余构建步骤保持原有逻辑不变
这样每次构建镜像时,ChromeDriver都会与安装的Chrome版本严格对应,不会再出现版本不兼容的连接问题。
内容的提问来源于stack exchange,提问作者ankit kalal
相关产品推荐
相关产品推荐

