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

Docker构建Vue.js应用时npm install失败,ChromeDriver安装出错

Vue.js Docker构建中ChromeDriver安装失败的代理问题解决

我正在通过如下Docker配置构建Vue.js应用:

# build stage
FROM node:10.15.0 as build-stage
WORKDIR /app
COPY . .

RUN npm install
RUN npm run build

# production stage
FROM nginx:1.13.12-alpine as production-stage
.
.
.

由于当前环境无网络,我在COPY命令后添加了如下代理配置:

ENV HTTP_PROXY http://<proxy-ip>:3128
ENV HTTPS_PROXY http://<proxy-ip>:3128
ENV http_proxy http://<proxy-ip>:3128
ENV https_proxy http://<proxy-ip>:3128

但似乎仍无法完全连接网络,执行npm install步骤时出现ChromeDriver安装失败的错误(错误截图如下):
错误截图

我还尝试了如下npm代理配置,但问题依旧:

RUN npm config set proxy http://<proxy-ip>:3128
RUN npm config set http-proxy http://<proxy-ip>:3128
RUN npm config set https-proxy http://<proxy-ip>:3128

请问该如何解决此问题?


解决方法

  • 为ChromeDriver单独配置代理
    ChromeDriver的安装脚本通常不读取系统或npm的全局代理配置,需单独设置专属环境变量,将以下代码放在RUN npm install之前:

    ENV CHROMEDRIVER_PROXY http://<proxy-ip>:3128
    
  • 直接在npm install命令中指定代理
    跳过全局配置,直接给npm install命令传递代理参数,确保安装过程强制使用指定代理:

    RUN npm install --proxy http://<proxy-ip>:3128 --https-proxy http://<proxy-ip>:3128
    
  • 本地预下载ChromeDriver并复制到容器

    1. 在本地环境下载与项目依赖匹配的ChromeDriver版本,放到项目根目录的chromedriver文件夹中;
    2. 在Dockerfile中复制文件并赋予执行权限:
      COPY ./chromedriver /usr/local/bin/
      RUN chmod +x /usr/local/bin/chromedriver
      
    3. 设置环境变量禁用npm自动下载ChromeDriver:
      ENV CHROMEDRIVER_SKIP_DOWNLOAD true
      RUN npm install
      
  • 检查代理白名单
    确认代理服务器允许访问ChromeDriver官方下载源(https://chromedriver.storage.googleapis.com/),若该域名被代理拦截,需将其加入代理白名单。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:40:29