Verdaccio 崩溃并出现错误 [ERR_STREAM_DESTROYED]:流被销毁后无法调用写入

Verdaccio crash with Error [ERR_STREAM_DESTROYED]: Cannot call write after a stream was destroyed

我们在 docker.

中托管 Verdaccio 3.4.0 npm 私有注册表

它使用挂载的卷来存储包。

由于某种原因,容器开始崩溃,它现在可以启动但看不到任何包:

我已经检查过,安装的卷仍然是:/verdaccio/storage

我注意到磁盘 space 已满,但即使清理了一半以上的完整磁盘 space,它仍然说没有发布包。

这变得至关重要,因为它影响了我们所有的 CI,

如何恢复我的服务器状态?

为了传播知识,我们就此问题进行了一次聊天(verdaccio 社区chat)。你的理由是:

  • 缺少硬盘 space 不允许 Verdaccio 创建或修改文件。
  • 由于第一点,您的数据库已损坏(空),作为提醒,Verdaccio 打开文件并尝试写入,特别是当您发布新包时的数据库

解决方案很简单,清除磁盘中的一些 space,重新启动服务器并从备份恢复以前的 .sinopia-db.json 数据库。

始终保持备份 :-)