如何刷新Bower包证书?Docker构建遇证书过期报错
解决Docker构建中Bower证书过期问题
问题根源
报错里的CERT_HAS_EXPIRED是因为Bower官方注册中心https://registry.bower.io的SSL证书已过期,且Bower早已停止维护——单纯刷新容器内的本地证书根本解决不了问题,得换用以下方案:
方案1:改用npm安装依赖
Bower的绝大多数包都能在npm上找到,直接替换Dockerfile里的Bower命令即可:
- 若基础镜像没有npm,先安装(Debian/Ubuntu系可加
RUN apt-get update && apt-get install -y npm) - 把原命令
RUN bower install --allow-root替换成:
要是项目里有RUN npm install angular-touch@~1.5.0package.json,直接用RUN npm install更省心。
方案2:修改Bower的注册源
如果必须继续用Bower,可把注册源换成仍可用的镜像,在Dockerfile里先配置新源再执行安装:
RUN echo '{ "registry": "https://bower.herokuapp.com" }' > /root/.bowerrc RUN bower install --allow-root
方案3:升级基础镜像
如果你的基础镜像版本过老,内置的根证书列表可能缺失新的有效证书——虽然这解决不了Bower官方源过期的核心问题,但配合换源操作,升级基础镜像能规避其他潜在的证书问题,比如用FROM ubuntu:22.04替代老版本Ubuntu镜像。
内容的提问来源于stack exchange,提问作者Troom
相关产品推荐
相关产品推荐

