【问题标题】:Digital Ocean clone droplet with Rails 5 app deployed with Capistrano使用 Capistrano 部署的带有 Rails 5 应用程序的 Digital Ocean 克隆液滴
【发布时间】:2017-02-23 13:33:15
【问题描述】:

我无法访问我正在运行使用 Capistrano 部署的 rails 5 应用程序的 droplet。我正在使用的技术堆栈是

-Ruby 2.3.0 (RVM 2.9.1)
-Rails 5.0.1
-Puma
-Capistrano 3.7.2 (the first time I deployed the app I've used 3.6.0,                     but I was getting an error and I decided to upgrade it)
-Postgresql
- Nginx

我能够拍摄快照并重新创建服务器并再次获得访问权限。但是我无法让该应用再次运行。

首先,这些是我做的步骤

  1. 拍摄服务器快照
  2. 根据我之前做的 spanshot 创建一个 droplet
  3. 设置对服务器的访问(我用于部署的用户在那里,我不需要做任何事情)

当我尝试部署 Capristano 时,我收到一个错误,提示我没有文件夹的访问权限或文件夹不存在(错误是我没有足够的内存),但事实证明我解决了这个添加交换内存的问题。

然后我收到一个错误,提示存在另一个 puma.sock 实例(或类似的东西),我解决了从 /apps/myapp/shared/tmp 删除文件的问题

现在看来,当我尝试部署应用程序时,应用程序无权访问数据库(数据库中包含所有数据)

有没有人做过类似的事情?还有更神奇/更简单的方法吗?

【问题讨论】:

    标签: ruby-on-rails digital-ocean capistrano3


    【解决方案1】:

    最后我能够解决它。问题是我需要将这行配置添加到我的deploy.rb 文件中

    set :linked_dirs, %w{tmp/pids tmp/sockets log}
    

    缺少那条线导致 puma 无法部署。消息是这样的

    套接字'已经在使用'

    【讨论】:

      【解决方案2】:

      有没有更神奇/更简单的方法?

      如果你没有大量使用 linux 服务器配置的经验,我建议你在数字海洋上使用 heroku,它更“神奇和简单”,而且基本的东西是免费的

      如果您选择继续使用数字海洋,我会确保 rails 正在使用正确的 IP 地址,请查看本指南:https://www.digitalocean.com/community/tutorials/deploying-a-rails-app-on-ubuntu-14-04-with-capistrano-nginx-and-puma

      【讨论】:

      • 我使用 heroku 作为 staging,但生产成本比我想要的要高。我也想学习,但由于这很紧急,我必须在这里发布问题。
      猜你喜欢
      • 2021-05-07
      • 1970-01-01
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      • 2015-02-24
      相关资源
      最近更新 更多