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

Django+Selenium Docker构建报错:Selenium 255初始化错误求助

Django项目Docker化Selenium环境初始化错误(错误码255)

我的Django项目中有一个模块,通过API传递信息给Selenium处理,但在Docker中构建Selenium环境时出现问题,日志显示Selenium初始化错误,错误码255。当前使用的是最新版geckodriver,奇怪的是两天前代码还能正常运行。

以下是我的Dockerfile:

FROM python:3.9
LABEL autor="LOADER"
LABEL description="APP"

WORKDIR /usr/src/html_loader/
COPY . /usr/src/html_loader/

RUN apt-get update

RUN echo "Y" | apt-get install alien
RUN echo "Y" | apt-get install gunicorn
RUN echo "Y" | apt-get install memcached
RUN echo "Y" | apt-get install unixodbc
RUN echo "Y" | apt-get install unixodbc-dev
RUN echo "Y" | apt-get install cifs-utils
RUN echo "Y" | apt-get install libgtk-3-dev
RUN echo "Y" | apt-get install libgtk-3-0
RUN echo "Y" | apt-get install libdbus-glib-1-2
RUN echo "Y" | apt-get install xvfb

RUN apt-get install libaio1

RUN echo "deb http://deb.debian.org/debian/ unstable main contrib non-free" >> /etc/apt/sources.list.d/debian.list
RUN apt-get update
RUN echo "Y" | apt-get install -y --no-install-recommends firefox
RUN apt-get update && apt-get install -y wget bzip2 libxtst6 libgtk-3-0 libx11-xcb-dev libdbus-glib-1-2 libxt6 libpci-dev && rm -rf /var/lib/apt/lists/*

ENV pip=pip3
ENV python=python3
ENV DJANGO_HOST="http://crawlerdjango:4333"

RUN pip install --upgrade pip

COPY requirements.txt .
RUN pip3 install -r requirements.txt

RUN apt-get update --allow-releaseinfo-change
RUN Xvfb &

EXPOSE 4666
EXPOSE 4777

排查方向与修复建议

  • 版本兼容性问题:你用了最新版geckodriver,但Dockerfile从unstable源安装Firefox,可能版本更新后两者不兼容。建议指定Firefox稳定版本,比如apt-get install -y firefox=115.0.3-1~deb12u1,确保和geckodriver版本匹配。
  • Xvfb启动方式错误:Dockerfile中RUN Xvfb &仅在构建阶段启动,容器运行时不会自动启动。需将Xvfb启动逻辑放到启动脚本中,比如创建start.sh:
    #!/bin/bash
    Xvfb :99 -screen 0 1024x768x16 &
    export DISPLAY=:99
    # 替换为你的Django启动命令
    gunicorn your_django_app.wsgi:application --bind 0.0.0.0:4666
    
    然后在Dockerfile末尾添加:
    COPY start.sh .
    RUN chmod +x start.sh
    CMD ["./start.sh"]
    
  • 依赖清理与源调整:Dockerfile中重复安装了libgtk-3-0、libdbus-glib-1-2等依赖,可清理重复命令减少潜在问题。另外unstable源软件包不稳定,建议换成stable源安装Firefox。
  • Selenium代码配置优化:检查你的Selenium初始化代码,确保指定正确的Firefox路径并启用headless模式:
    from selenium import webdriver
    from selenium.webdriver.firefox.options import Options
    
    options = Options()
    options.headless = True
    options.add_argument('--no-sandbox')
    options.add_argument('--disable-dev-shm-usage')
    driver = webdriver.Firefox(options=options)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:45:39