酔いどれ技術者の備忘録

お酒を飲みながらコーディングするので調べたことを忘れます。そのための備忘録。

CircleCI + Capistranoでデプロイできなくて焦った話

Railsアプリを作成する際は、CircleCIを使ってCapistranoでAWS EC2にデプロイしているのですが、ある日急にデプロイできなくなりました。。
CircleCIのログを見ると以下のメッセージが。

01 /srv/xxxx/shared/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/compile_cache/iseq.rb:37:in `fetch'
01 : 
01 No space left on device - bs_fetch:atomic_write_cache_file:write
01  (
01 Errno::ENOSPC
01 )
01  from /srv/xxxx/shared/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/compile_cache/iseq.rb:37:in `load_iseq'
01  from /srv/xxxx/shared/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
01  from /srv/xxxx/shared/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in requir

No space left on device とありますが、EC2インスタンスの容量が足りないようです。

EC2のインスタンスにログインしてみます。

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2018.03-release-notes/
/home/xxxx/.rbenv/libexec/rbenv-init: 行 131: ヒアドキュメント用一時ファイルを作成できません: デバイスに空き領域がありません

空き容量が無いって出てますやん。

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         483M   60K  483M    1% /dev
tmpfs            493M     0  493M    0% /dev/shm
/dev/xvda1       7.8G  7.8G     0  100% /

100%やん!

ということで、以下のコマンドでログをクリア。
ファイル自体は削除せず内容を空に。

$ find /var/log/ -type f -name \* -exec cp -f /dev/null {} \;

結果、容量が空き無事にデプロイ出来ました。

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         483M   60K  483M    1% /dev
tmpfs            493M     0  493M    0% /dev/shm
/dev/xvda1       7.8G  4.9G  2.9G   63% /

一応解決! ただ、もうちょいサイズは増やさないとなー

参考
/var/log/のログファイルを一括でクリアしたくなったら - Qiita