Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js capistrano 3:cap中止!Don';我不知道如何构建任务';部署:更新';_Node.js_Capistrano3 - Fatal编程技术网

Node.js capistrano 3:cap中止!Don';我不知道如何构建任务';部署:更新';

Node.js capistrano 3:cap中止!Don';我不知道如何构建任务';部署:更新';,node.js,capistrano3,Node.js,Capistrano3,我正在尝试将node.js应用程序部署到远程服务器上 运行 我在线路上遇到一个错误: after "deploy:update", "deploy:cleanup" 默认部署任务应为所有加载(更新、清理等) 这是我的部署.rb文件 # config valid only for current version of Capistrano lock '3.4.0' set :application, 'cockpit-api' set :scm, :git set :repos

我正在尝试将node.js应用程序部署到远程服务器上 运行

我在线路上遇到一个错误:

   after "deploy:update", "deploy:cleanup"
默认部署任务应为所有加载(更新、清理等)

这是我的部署.rb文件

    # config valid only for current version of Capistrano
lock '3.4.0'

set :application, 'cockpit-api'
set :scm, :git

set :repository, 'git@gitlab.com:user/myapp.git'
set :branch, "master"
set :deploy_to, '/var/www/myapp'
set :deploy_via, :remote_cache

set :copy_strategy, :checkout
set :keep_releases, 5

set :use_sudo, false
set :copy_compression, :bz2
set :normalize_asset_timestamps, false

set :document_root, "/var/www/myapp"

set :ssh_options, {:forward_agent => true}
set :user, "deploy"
名称空间:deploydo

task :start do 
  on primary roles :app do
   run "sudo restart #{application} || sudo start #{application}"
  end
end

task :stop do
  on primary roles :app do
    run "sudo stop #{application}"
  end
end

task :restart do
  on primary roles :app do
    start
  end
end

task :npm_install  do
  on primary roles :app do
    run "cd #{release_path} && npm install"
  end
end
结束

在“部署:更新”、“部署:清理”之后 在“部署:更新\u代码”之后,“部署:npm\u安装”

和我的staging.rb

set :stage, :staging
server 'myapp.mydomain.com', user: 'deploy', roles: %w{app}
role :app, "deploy@myapp.mydomain.com"
我的Capfile非常小

# Load DSL and set up stages
require 'capistrano/setup'

# Include default deployment tasks
require 'capistrano/deploy'

# Load custom tasks from `lib/capistrano/tasks` if you have any defined
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }

我不确定Node.js通常是如何通过Capistrano3部署的,但这里有很多错误。例如,Capistrano 3中没有
deploy:update
,也没有
deploy:update\u code
。此外,Capistrano 3没有名为
:copy\u strategy
:copy\u compression
的设置

我猜您遵循了为Capistrano 2编写的文档或示例,并试图将其添加到Capistrano 3项目中。不幸的是,这不起作用,因为Capistrano2和Capistrano3是完全不同和不兼容的


我建议搜索Node.js+Capistrano的最新示例,其中明确提到Capistrano 3。

我不清楚,有什么错误?谢谢Matt。。。我现在已经设置了Capistrano3部署,删除了不推荐的设置,并在挂钩后更新。。。除了将节点模块安装到共享文件夹中并启动upstart作业(如果使用,像我一样)的任务外,实际上没有特定于node.js部署的内容
# Load DSL and set up stages
require 'capistrano/setup'

# Include default deployment tasks
require 'capistrano/deploy'

# Load custom tasks from `lib/capistrano/tasks` if you have any defined
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }