问题标签 [rvm-capistrano]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
876 浏览

ruby-on-rails - 生产中的 Rails 抛出 502 错误

我尝试使用以下方法将生产模式下的测试应用程序部署到 VPN:

  • 数字海洋上新的干净的水滴
  • Ubuntu 14.10
  • 导轨 4.2.0
  • 红宝石 2.1.5
  • 虚拟机
  • PostgreSQL
  • 独角兽
  • 卡皮斯特拉诺 3.2.1
  • Nginx

我的应用程序部署成功,但它抛出了 500.html。

该应用程序已进行迁移并在公共目录中获取资产。部署期间和日志(production.log、unicorn_error.log、unicorn.log)中没有错误。我检查了独角兽的工人ps aux|grep unicorn,有几个工人在做这件事。生产中的 Rails 控制台也可以工作,因此与 PostgreSQL 有联系。

我尝试在本地 PC 上启动我的应用程序,它与rake RAILS_ENV=production assets:precompile.

请帮我找出问题所在。如何检测问题的原因是什么?是在我的部署代码中还是在服务器的设置中?

Nginx 设置 /etc/nginx/sites-available/default

在 Gemfile 我使用

/config/deploy.rb

/config/deploy/production.rb

/config/unicorn/production.rb

0 投票
1 回答
93 浏览

ruby-on-rails-3 - capistrano3 任务不保留 gemfile

我正在尝试使用 rvm1-capistrano 将 Capistrano 更新到 v3,但遇到 gemset 错误。

Capfile的相关部分:

我的 deploy.rb 看起来像:

任何其他设置是主机、repo_url 等。rake assets:precompile 任务失败并出现以下错误,因为作业找不到合适的 gemset:

Gemfile 在主要部分指定 gem(定制引擎):

我已经bundle install在远程服务器上手动运行了,所以我知道 gemset 实际上在远程服务器上。

我已经运行cap customenv rvm1:check并收到以下输出:

所以看起来 capistrano 工作确实有正确的设置。

有没有我没有设置的变量?

0 投票
1 回答
583 浏览

ruby-on-rails - Capistrano:如何共享 Capistrano 任务?

我的登台和生产部署脚本之间有一些共享任务。编写共享任务的最佳实践是什么?例如,我是否需要将它们移动到单独的文件/lib/capistrano/tasks中?如果是这样,我会怎么做?我的意思是文件扩展名是什么以及如何命名这些任务并通过cap命令访问它们?

0 投票
0 回答
54 浏览

ruby - 不同参数的 Capistrano 多服务器部署

我想将一个 ruby​​ 脚本部署bin/app.rb到多个服务器

zone1.myapp.com, zone2.myapp.com&zone3.myapp.com使用 Capistrano v3。部署后,它将需要作为具有特定于该区域的参数的守护程序运行,这意味着......

zone1应该运行bundle exec ruby bin/app.rb zone1

zone2应该运行bundle exec ruby bin/app.rb zone2

zone3应该运行bundle exec ruby bin/app.rb zone3

Capistrano 有没有办法做到这一点?

0 投票
0 回答
220 浏览

ruby-on-rails - 使用 Capistrano 重新启动 Thin 守护程序:错误:/usr/bin/env: ruby​​_executable_hooks: No such file or directory

我在使用 rails 的 capistrano 部署中包含了这个简单的命令。

但问题是当我部署时出现此错误

/usr/bin/env: ruby​​_executable_hooks: 没有这样的文件或目录

这很奇怪,因为如果我在服务器中手动键入 /etc/rc.d/thin restart 它实际上可以正常工作。

可能值得注意的是,我添加了这个

在我的 capistrano 文件上设置 :default_shell, '/bin/bash -l' 虽然这很奇怪,因为如果我在同一用户的服务器上手动键入它,我可以使精简重启工作。

宝石版本是:

我对导致错误的原因有点不知所措。

0 投票
1 回答
1540 浏览

ruby-on-rails - Capistrano 投掷装置 secret_key 未设置

我正在使用 Capistrano 3.1.4,带有 capfile

我已经将我的 gem 设置为使用 figaro 和设计。当我 ssh 到盒子并运行时(使用 .bash_profile export RAILS_ENV=production)

但是当我执行时:

我收到错误说明未设置设计密钥,是因为 bash -login 未在服务器上运行吗?

0 投票
1 回答
338 浏览

ruby - Capistrano 3 中的任务找不到 RVM

几个月来,我一直在使用 Capistrano 3 部署 PHP 应用程序,并且效果很好。最近,我们决定开始将 Sass 用于样式表,我现在正在尝试部署这些更改。

我正在尝试编写一个在其余部署内容完成后运行的任务,该任务使用 Sass gem 将 scss 文件转换为 css。

我在服务器上使用 RVM 并将 sass gem 安装在特定的 gemset 中。项目根目录中还有一个 .rvmrc 文件,当您 cd 进入 capistrano 创建的“当前”目录时,它会加载正确的 gemset。

当我部署时,它在我的新任务中失败,说它找不到 sass。

我可以使用与 Capistrano 和 cd 部署到“当前”目录中的用户相同的用户身份登录服务器,并在任务中运行相同的命令(用实际路径替换 #{release_path}),它工作正常。

我尝试过的事情:

  1. 用以下内容重写执行命令:

rvm 使用 2.1.5@deployer && sass #{release_path}/styles/test.scss #{release_path}/styles/test.css

  1. 编写一个可由部署者用户访问的 bash 脚本,该脚本加载 gemset 然后运行 ​​sass 命令(当我在任何目录中登录到服务器时运行新脚本时有效,从 capistrano 任务调用时无效)

  2. 使用 capistrano-rvm 插件(添加到 Gemfile,需要在 Capfile 中)设置 RVM gemset - 希望它会在运行任何命令之前加载 gemset。

我已经多次使用 Capistrano 部署 Rails 应用程序,并且总是使用处理预编译和诸如此类的资产插件......这是我用于部署 PHP 应用程序的第一个项目,也许是我第一次尝试手动运行capistrano 任务,它使用安装在带有 RVM 的服务器上的 ruby​​gem。

是否可以运行依赖于特定 gem/gemset 的任务......而不使用默认的 rails 插件?

任何帮助表示赞赏。

谢谢,JD

0 投票
0 回答
341 浏览

rvm - 帽子停止工作丢失的bin文件

capistrano 工作正常,我不知道我改变了什么,但现在我明白了:

(cap3,rails4,使用 capistrano-rvm)

在某些时候,我确实安装了一个新的 ruby​​,但这似乎工作正常,rvm 在服务器上工作正常:

和:

我尝试添加到 deploy.rb :

有任何想法吗?

0 投票
0 回答
129 浏览

ruby-on-rails - Bundler 升级和添加源块后 capistrano 部署错误

我项目的最新分支包括基于升级到 Bundler 1.10.5 对 Gemfile 的更改,特别是对两个内部 gem 的源代码块的使用。这似乎是尝试部署到测试服务器时出现问题的原因,其中 capistrano 抛出错误并回滚部署。

命令生成错误:

错误消息(匿名的私人数据,但与原始数据相同):

Gemfile包含行:

根据常识和对此答案的评论,我尝试gem install bundler -v '1.10.5'在测试服务器上运行,它似乎已经安装(安装消息显示成功并gem which bundler返回包含新版本号的路径),但部署错误没有变化.

两者都在 gitGemfileGemfile.lock进行跟踪并部署到服务器(根据此答案)。不存在vendor/cache目录(根据此答案)。一切都在本地顺利进行,并且在几个小时前,在 Gemfile 中没有源代码块的分支的部署也很顺利。如何解决此 Bundler 部署问题?

0 投票
2 回答
405 浏览

ruby-on-rails - Capistrano / Rails 3.2.14 / Sprockets - 未在生产中完成部署

我正在迁移几年前创建的 Rails 应用程序,并且很长时间没有将其部署到新服务器上。当时,我使用 capistrano 没有问题,现在,当我运行cap deploy时,以下步骤失败:

我在几个地方读到了有关 sprockets 更改清单文件名或类型(从 .sprockets-manifest 到 .manifest 或其他东西)的信息,但我不知道如何以一种不是黑客的方式解决它。我不确定这是否是由于使用旧的 Rails 版本或其他原因。这是我正在使用的版本:

  • 红宝石 2.2.2
  • 导轨 3.2.14
  • Capistrano 2.15.6(带有 Rvm/capistrano)
  • 链轮 2.2.1