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

升级Node.js至16.14.2后Docker部署安装sentry-cli遇ERR_INVALID_PROTOCOL错误

升级Node.js后Docker中sentry-cli安装失败的解决办法

问题根因

报错Protocol "https:" not supported. Expected "http:",本质是Node.js 16的网络模块对代理的处理逻辑和12不同,加上你的代理是http协议,sentry-cli安装脚本拉取https资源时,没正确处理协议转换,导致请求被错误地用http协议发送到https地址。

具体解决方法

1. 补全代理环境变量

Docker构建时,除了HTTP_PROXY,必须设置HTTPS_PROXY(大写),因为拉取https资源需要这个变量:

# 把这几行加到你的Dockerfile里
ENV HTTP_PROXY=http://pkg.proxy.prod.jp.local:10080/
ENV HTTPS_PROXY=http://pkg.proxy.prod.jp.local:10080/
ENV NO_PROXY=localhost,127.0.0.1

另外要确认你的代理服务器支持转发https请求(也就是允许CONNECT方法),如果不支持,得找运维开权限。

2. 手动导入sentry-cli二进制文件

绕开自动下载的坑,直接把二进制文件放进镜像:

  • 先在本地通过代理下载好sentry-cli-Linux-x86_64文件
  • 然后在Dockerfile里复制并赋权:
COPY ./sentry-cli-Linux-x86_64 /usr/local/bin/sentry-cli
RUN chmod +x /usr/local/bin/sentry-cli

要是能直接通过代理ADD,也可以这么写:

ADD https://downloads.sentry-cdn.com/sentry-cli/2.9.0/sentry-cli-Linux-x86_64 /usr/local/bin/sentry-cli
RUN chmod +x /usr/local/bin/sentry-cli

3. 给npm安装指定代理参数

如果是通过npm安装@sentry/cli,可以直接在安装命令里加代理,或者先配置npm的代理:

# 先配置npm代理
RUN npm config set proxy http://pkg.proxy.prod.jp.local:10080/
RUN npm config set https-proxy http://pkg.proxy.prod.jp.local:10080/
# 再安装sentry-cli
RUN npm install @sentry/cli@2.9.0

或者一次性带参数安装:

RUN npm install @sentry/cli@2.9.0 --https-proxy=http://pkg.proxy.prod.jp.local:10080/

4. 检查代理服务器白名单

让运维确认代理服务器允许访问downloads.sentry-cdn.com的443端口,很多http代理默认会拦截https的CONNECT请求,得把这个域名加进白名单。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 02:20:53