LoginSignup
1
0

More than 5 years have passed since last update.

CapistranoでGit LFSを使いたかった

Posted at

コミケのサークルスペースを検索するWebアプリを制作していて、仕上げにCapistranoでデプロイ!と思ったら、タイトルのとおり壁にぶち当たりました。

画像リソースをGit LFSに投げていて、リモートにインストールされていなかったことが原因です。

問題点

  • $ bundle exec cap production deploy する
  • ベアリポジトリがクローンされる
  • (リモートにGit LFSがインストールされていないので)フックが走らない
  • Git LFSに投げていた画像もろもろが表示できない

試みたこと

ローカルでアセットをプリコンパイルして投げようとしたら、rsyncがToo many levels of symbolic links を吐いて無事死亡しました(なんで)

Git LFSを入れずに素のままでやってみたかったのですが、「capistrano git lfs」でgoogle先生に聞いてもまず検索結果が2000件くらいでそれっぽい資料も見つからずじまい。「未指定: capistrano」ばかりの検索結果に諦めようとしていました。

解決策

capistrano-withrsyncを使いましょう。

capistrano-withrsyncをGemfileに追加してCapfileでrequireしたところ、しっかりファイルを持ってきてくれました。

このGemはもともとCapistrano上でrsyncを用いてgitリポジトリを送り込むものですが、ローカルでのクローン時点でフェッチしたGit LFSのオブジェクトを流れでリモートにコピーしてくれます。

リソースが多くある場合はこうやって配信する形の方が良いのかな…?

image

Git LFSをインストールしているマシンでデプロイするコマンドを叩けば、いつも通り簡単にデプロイしてくれそうです。

せんでん

Circlesearchでは、各種同人イベントの参加サークルをTwitterから一覧にしています。参戦予定のイベントがあればぜひ使ってみてください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0