Ruby on rails Rails 6 Capistrano部署失败,即使应用程序在手动启动时工作正常

Ruby on rails Rails 6 Capistrano部署失败,即使应用程序在手动启动时工作正常,ruby-on-rails,ruby,capistrano,Ruby On Rails,Ruby,Capistrano,因此,当我将此应用程序部署到Heroku时,它工作得非常好 我正在尝试将其部署到VM(数字海洋上的一个普通ubuntu微滴) 按预期设置Capistrano。 我无法确定此错误可能来自何处 SSHKit::Runner::ExecuteError: Exception while executing as deploy@<IP ADDRRESS>: rake exit status: 1 rake stdout: Nothing written rake stderr: Nothin

因此,当我将此应用程序部署到Heroku时,它工作得非常好

我正在尝试将其部署到VM(数字海洋上的一个普通ubuntu微滴)

按预期设置Capistrano。 我无法确定此错误可能来自何处

SSHKit::Runner::ExecuteError: Exception while executing as deploy@<IP ADDRRESS>: rake exit status: 1
rake stdout: Nothing written
rake stderr: Nothing written
而且这个效果非常好。 当我尝试在服务器上手动运行这个构建时,它也可以工作


需要一些帮助请也许您需要再次添加ssh,请尝试以下操作
ssh在您的控制台中添加
,然后再次尝试部署。

问题似乎是您的
deploy.rb
中缺少一些关键配置,没有这些配置,您无法连接到droplet

# config valid for current version and patch releases of Capistrano
lock "~> 3.14.1"

server 'YOUR_DROPLET_IP',
roles: [:web, :app, :db],

set :user,  'deploy'
set :application, "mark_antony"
set :repo_url, "git@gitlab.com:browneinstitute/mark.git"

# Default branch is :master
set :deploy_to, "/home/deploy/#{fetch :application}"

append :linked_dirs, 'log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', '.bundle', 'public/system', 'public/uploads'

set :keep_releases, 5
# This might not be needed. If needed make sure to provide the correct path to your ssh key
set :ssh_options,     {
                        forward_agent: true,
                        user: fetch(:user),
                        keys: %w(~/.ssh/id_rsa)
                      } 

append :linked_files, "config/master.key"

所以我认为这在预编译资产中总是失败的,答案如下:

帮助解决了这个问题,只是我必须为路径添加一个稍微不同的值

# add in deploy.rb

set :default_env, {
    PATH: '$HOME/.nvm/versions/node/v14.15.1/bin/:$PATH',
    NODE_ENVIRONMENT: 'production'
}

这是因为在VM上运行
$which warn
返回以下结果:

/home/deploy/.nvm/versions/node/v14.15.1/bin/yarn

你能同时发布你的
deploy.rb
文件吗?capistrano无法通过SSHAdded It@Danielsindrestean进行连接似乎是个问题。下面的答案是否有帮助?刚刚找到答案,谢谢帮助@Danielsindrestean谢谢,但这没有帮助不,这也没有帮助。。实际上,我有一个
production.rb
文件用于它的部署配置,你写的一些东西就在那里,剩下的我添加了。最初它失败了,无法找到rails secret(因此我将
production.key
复制到共享的configs文件夹中)。现在我们又回到了类似于
o:rake退出状态:1(SSHKit::Runner::ExecuteError)rake stdout:Nothing writed rake stderr:Nothing writed(回溯限制为导入任务)cap中止的错误谢谢,它可以工作,但是您可以在答案中添加“#add-in deploy.rb”谢谢@AndrewGrow的建议
# add in deploy.rb

set :default_env, {
    PATH: '$HOME/.nvm/versions/node/v14.15.1/bin/:$PATH',
    NODE_ENVIRONMENT: 'production'
}

/home/deploy/.nvm/versions/node/v14.15.1/bin/yarn