当磁盘实际未满时部署说磁盘已满

Deploy says disk full when the disk is not actually full

我正在尝试在数字海洋盒子上部署我们的 rails 应用程序的更新。当我 运行 cap deploy 我得到错误:

error: file write error (No space left on device)
fatal: unable to write sha1 file
fatal: unpack-objects failed

当我 运行 df 我看到我们只使用了磁盘的 15% space:

Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       41151808 5500720  33537664  15% /
none                   4       0         4   0% /sys/fs/cgroup
udev             1014128       4   1014124   1% /dev
tmpfs             205000     360    204640   1% /run
none                5120       0      5120   0% /run/lock
none             1024980       0   1024980   0% /run/shm
none              102400       0    102400   0% /run/user

df -i 显示:

Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/vda1      2621440 176278 2445162    7% /
none            256245      2  256243    1% /sys/fs/cgroup
udev            253532    402  253130    1% /dev
tmpfs           256245    325  255920    1% /run
none            256245      1  256244    1% /run/lock
none            256245      1  256244    1% /run/shm
none            256245      3  256242    1% /run/user

我试过删除日志文件并重新启动盒子,但没有成功。关于它为什么认为我们的磁盘已满的任何想法?

原来错误实际上来自数据库服务器 - 已满。

在几次尝试使用 capistrano3 进行部署失败后,我 运行 在这里遇到了同样的问题。

df -i 确实表明我在应用服务器上的使用率很高,但我能够通过使用 cap ENVIRONMENT deploy:clean

清除旧版本来解决它

这个答案可能对那些最终来到这里并想知道他们的 space 去了哪里的其他人有帮助;特别是如果之前的部署出现问题,它们可能会占用大量 space 或 inode。更有可能。