构建Docker镜像时执行RUN npm install报UNABLE_TO_GET_ISSUER_CERT_LOCALLY错误
Docker构建时npm install出现UNABLE_TO_GET_ISSUER_CERT_LOCALLY错误解决方法
问题概述
构建Docker镜像过程中,RUN npm install步骤执行失败,报错UNABLE_TO_GET_ISSUER_CERT_LOCALLY,核心原因是无法验证npm官方registry的SSL证书,导致请求https://registry.npmjs.org失败。
解决方案
1. 临时跳过SSL证书校验(仅测试环境使用)
直接在npm install命令中添加参数关闭严格SSL校验:
RUN npm install --strict-ssl=false
或者:
RUN npm install --no-ssl --insecure
2. 导入自定义根证书(适合企业内网环境)
如果是因为使用了公司内部的SSL证书,需要将根证书文件(比如rootCA.crt)复制到镜像中并配置npm使用:
修改Dockerfile如下:
FROM node:14 WORKDIR /app # 复制根证书并更新系统证书库 COPY rootCA.crt /usr/local/share/ca-certificates/ RUN update-ca-certificates # 配置npm使用该根证书 COPY package.json . RUN npm config set cafile /usr/local/share/ca-certificates/rootCA.crt && npm install COPY . . EXPOSE 3000 CMD [ "node", "app.mjs" ]
3. 更换npm镜像源
使用国内镜像源(如淘宝镜像)绕过证书问题:
RUN npm install --registry=https://registry.npmmirror.com
内容的提问来源于stack exchange,提问作者user562164
相关产品推荐
相关产品推荐

