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

如何在Docker的Node.js环境中安装Chrome、ChromeDriver、JRE以运行Selenium应用

Docker 镜像适配 Selenium + Chrome 运行环境方案

容器是完全隔离的运行环境,宿主机预装的依赖无法直接被容器内部访问,必须在镜像构建阶段就安装好所有需要的系统依赖。

修改后的 Dockerfile 配置

FROM node:14

# 安装系统依赖:Chrome、ChromeDriver、JRE
RUN apt update && apt install -y wget gnupg2 default-jre \
    # 添加 Chrome 官方源
    && wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - \
    && echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list \
    && apt update && apt install -y google-chrome-stable \
    # 安装和当前Chrome版本匹配的ChromeDriver
    && CHROME_VERSION=$(google-chrome --version | grep -oP "(?<=Google Chrome )\d+\.\d+\.\d+") \
    && DRIVER_VERSION=$(wget -qO- https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$CHROME_VERSION) \
    && wget -q https://chromedriver.storage.googleapis.com/$DRIVER_VERSION/chromedriver_linux64.zip \
    && unzip chromedriver_linux64.zip -d /usr/local/bin/ \
    && chmod +x /usr/local/bin/chromedriver \
    # 清理缓存减小镜像体积
    && rm -rf /var/lib/apt/lists/* chromedriver_linux64.zip

# 创建应用目录
WORKDIR /usr/src/app

# 安装Node依赖
COPY package*.json ./
RUN npm install
# 生产环境可替换为 npm ci --only=production

COPY . .

EXPOSE 3010
CMD [ "npm", "start" ]

额外必做配置

注意:容器内没有图形界面和默认沙箱权限,你需要在Node代码里初始化Selenium Chrome实例时添加以下启动参数,否则仍会启动失败

const { Builder } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');

let options = new chrome.Options();
options.addArguments('--headless=new'); // 无头模式
options.addArguments('--no-sandbox'); // 关闭沙箱,容器环境必须配置
options.addArguments('--disable-dev-shm-usage'); // 解决/dev/shm分区不足问题
options.addArguments('--disable-gpu'); // 禁用GPU加速

let driver = await new Builder()
  .forBrowser('chrome')
  .setChromeOptions(options)
  .build();

注意事项

  • 若你使用的是4.x及以上版本的selenium-webdriver npm包,无需依赖JRE,可以删除Dockerfile中安装default-jre的步骤减小镜像体积
  • 构建镜像时如果遇到源访问缓慢的问题,可以替换为国内的Debian源和Chrome镜像源
  • 每次构建都会自动安装和当前最新稳定版Chrome匹配的ChromeDriver,不会出现版本不兼容问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:36:05