【问题标题】:Verdaccio crash with Error [ERR_STREAM_DESTROYED]: Cannot call write after a stream was destroyedVerdaccio 崩溃并出现错误 [ERR_STREAM_DESTROYED]:流被销毁后无法调用 write
【发布时间】:2020-03-10 18:28:31
【问题描述】:

我们在 docker 中托管一个 Verdaccio 3.4.0 npm 私有注册表。

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

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

我检查过了,挂载的卷仍然是:/verdaccio/storage

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

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

如何恢复服务器的状态?

【问题讨论】:

    标签: javascript node.js verdaccio


    【解决方案1】:

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

    • 硬盘空间不足导致 Verdaccio 无法创建或修改文件。
    • 由于第一点,您的数据库已损坏(空),提醒一下,Verdaccio 打开文件并尝试写入,特别是当您发布新包时的数据库

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

    始终保持备份 :-)

    【讨论】:

    • 这又发生在我身上,磁盘空间又满了。防止这个文件被破坏会很好。另外,我发现上次在三月份修复它时,我使用了另一个没有备份的卷。有没有办法重新生成该文件?
    • 还没有,我建议定期备份该文件。
    • 我恢复了 3 个月前的备份文件。你觉得它有什么问题吗?我的 jwt 似乎在工作。如果我要保护的包裹不再在列表中会怎样?
    猜你喜欢
    • 1970-01-01
    • 2020-12-11
    • 2021-11-23
    • 1970-01-01
    • 2020-07-25
    • 2013-09-03
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多