capistrano3ではshared_childrenではなくlinked_dirsになりました。


この記事の所要時間: 129

こんにちは。 Railsでファイルをアップロードするときに便利なのが、carrierwaveだと思います。rmagickなどとも組み合わせて使えますしとても便利でよく使います。 ただ、今回デプロイするときにアップロード画像が消えてしまい悲しい思いをしたので書いておきます。 方針としてはshared(共有フォルダ)に入れておいてシンボリックリンクはろうという感じです。 とくに難しいことも何もないです。

想定

* public/uploadsフォルダ以下
* capistrano3

1. Gitから除外

まずはgitの追跡から除外してください。つまり.gitignoreです。

すでに追跡されている場合は削除しましょう。

2. 共有フォルダの設定

capistranoにおいて、sharedフォルダはデプロイ時に上書きを避けたいフォルダなどをおいておきます。そしてデプロイ時にはshared配下に対してシンボリックリンクを張るという仕組みになっています。

設定方法

※注意  capistrano2まではこれがshared_childrenという変数でした。ググるとけっこうshared_childrenの記事あるの気をつけてください。

参考

How to get Capistrano to ignore upload directories (Carrierwave) (via @AstonJ)

Capistrano 3への手引き – 今日のごはんは素麺です

投稿者紹介

疋田駿
Unicast Inc. ソフトウェアエンジニアRuby,Rails,React,Redux,ReactNative,Android,Elasticsearch,Dockerとか触りながら生計を立ててる。Thinkpad×fedora。ErgoDox愛好家な一児の父。

人気の記事

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP