【问题标题】:Capistrano not deploying paperclip imagesCapistrano 未部署回形针图像
【发布时间】: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 进行数据库播种。所有上限任务看起来都成功了,如果我手动将图像放入共享文件夹,这确实有效。但是,我想要一种自动化映像部署的方法,以便我可以进行无人值守的云部署。谢谢,西蒙
  • 您可以随时编写自己的上限任务并挂钩到部署链中,请参阅herehere
  • 谢谢,我认为你是对的,自定义任务看起来是前进的方向。我猜想共享目录链接到 to 签出代码的方式表明,预计签出目录将为空。我会将图像放在其他地方并使用 cap 任务将它们复制到共享目录中。感谢您的建议,非常感谢。我现在可以停止用头撞墙了:)

标签: ruby-on-rails paperclip capistrano


【解决方案1】:

感谢 Marian Theisen 的提示,我已通过将种子图像文件从 /app/public/system 目录移动到 /app/assets/seed_images/ 来解决此问题。

然后我在 config/deploy.rb 中创建了一个 cap deploy 任务,将图像复制到共享目录:

namespace :deploy do desc "Move seed images into place" task :move_seed_images_into_place, :roles => :app do run "cd #{release_path}; cp -R app/assets/seed_images/* #{shared_path}/system" end end

并将after("deploy:update_code", "deploy:move_seed_images_into_place") 添加到我的 config/deploy/staging.rb 文件中。

简而言之,答案是我试图在我的开发机器和登台主机之间共享公共/系统是错误的事情。相反,我已将种子图像移动到指定位置,然后手动将它们移动到我的暂存主机上。

这还有一个好处是我可以丢弃我在开发中使用的图像而不丢弃安装 - 我有一个我想要保存在 app/assets/seed_images 目录中的图像的快照。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 2017-07-13
    • 1970-01-01
    相关资源
    最近更新 更多