【发布时间】:2014-04-02 15:39:58
【问题描述】:
我有一个 Rails 4 应用程序,它使用回形针 gem 将图像存储在 #{Rails.root}/public/system/... 中,它在开发中运行良好。
我已将少量开发映像检查到上述文件夹中,但它们没有出现在我要部署到的 Ubuntu 13.10 EC2 实例上。我正在使用 Capistrano 进行部署,它似乎可以很好地创建所有符号链接:
ls -l releases/20140402123457/public/system
lrwxrwxrwx 1 ubuntu ubuntu 28 Apr 2 12:35 releases/20140402123457/public/system -> /var/www/alpha/shared/system
但链接到的共享目录不包含我的图像。如何填充 /var/www/app/shared/public/system 目录?我以为 Capistrano 会为我做这件事,但它是空的。
我已经搜索了许多 capistrano / 回形针线程来寻找答案,并且我已经尝试了我可以在 Capistrano -T 中找到的所有 capistrano 部署命令。我相信我正在使用回形针的默认位置,回形针文档建议我使用的路径:https://github.com/thoughtbot/paperclip#understanding-storage
我的 Gemfile.lock 显示了我在这里使用的 Gems:http://pastebin.com/iDv1Qm5K。
我一直在挠头,想知道我是不是要疯了。我是否需要手动将开发映像复制到共享/系统目录中?我已经检查了图像在 git 中并且在克隆时被提取,所以我希望我已经涵盖了可能导致这种情况的愚蠢错误的基础知识。任何有关如何进一步调查的建议将不胜感激。
【问题讨论】:
-
这不是直接支持的,可能不是你想要的?除非您还使用 capistrano 将开发数据库“部署”(复制)到生产实例。
-
嗨玛丽安,我正在使用种子文件为数据库播种,它指的是我正在使用的图像。它仅适用于应用程序中的前几张图像,例如默认/缺失图像。是的,Capistrano 进行数据库播种。所有上限任务看起来都成功了,如果我手动将图像放入共享文件夹,这确实有效。但是,我想要一种自动化映像部署的方法,以便我可以进行无人值守的云部署。谢谢,西蒙
-
谢谢,我认为你是对的,自定义任务看起来是前进的方向。我猜想共享目录链接到 to 签出代码的方式表明,预计签出目录将为空。我会将图像放在其他地方并使用 cap 任务将它们复制到共享目录中。感谢您的建议,非常感谢。我现在可以停止用头撞墙了:)
标签: ruby-on-rails paperclip capistrano