发现问题

今天突然发现,之前用 Nginx Proxy Manager 申请的 Let’s Encrypt SSL 证书过期了,就上去更新一下,结果发现报错了,在点击更新证书按钮的时候,直接弹窗报错说是:Internal Error

更新镜像

当时想着,也挺长时间没有更新 NPM 的镜像了,就打算直接去更新一波镜像看看能不能顺路解决这个问题,结果更新到了 2.10.1 以后,发现容器起不来了。进入到容器里看日志说是 80 端口被占用,但我在宿主机上查了一下,没有进程会占用 80 端口。

降级

Google 了一下,在 Github Issue 里看到很多人都和我一样,也顺便找到了解决方法:降级。

在我降级到了 2.9.22 版本以后,容器还是起不来,再查看日志,报错的原因已经不是端口被占用了,说明第一个问题已经解决。

解决 DNSPod 独家问题

接下来就是小众问题了,由于我用的是 DNSPod 的 DNS 做的泛域名 SSL,在用 DNSPod 的时候,会有一个问题:缺少 zope 这个组件,于是进入到容器里安装一下相关缺少的组件,回到浏览器里刷新页面以后,再次点击 更新证书 按钮以后就成功了,进入容器里需要执行的命令如下(中国大陆网络原因,这里临时用了一下清华的 PIP 镜像源):

1
2
python3 -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install certbot-dns-dnspod zope -i https://pypi.tuna.tsinghua.edu.cn/simple