Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.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
Ruby Capistrano deploy.rb文件中的任务问题_Ruby_Linux_Deployment_Capistrano - Fatal编程技术网

Ruby Capistrano deploy.rb文件中的任务问题

Ruby Capistrano deploy.rb文件中的任务问题,ruby,linux,deployment,capistrano,Ruby,Linux,Deployment,Capistrano,在我的deploy.rb文件中,我从中获取了以下内容,除touch命令外,所有内容都正常工作 有人知道为什么这可能不起作用吗 set :application, "your-application-name" set :repository, "git@github.com:you/your-project.git" set :scm, :git set :deploy_to, "/home/path/to/project/" set :use_sudo, false set :deploy_

在我的deploy.rb文件中,我从中获取了以下内容,除
touch
命令外,所有内容都正常工作

有人知道为什么这可能不起作用吗

set :application, "your-application-name"
set :repository, "git@github.com:you/your-project.git"
set :scm, :git
set :deploy_to, "/home/path/to/project/"
set :use_sudo, false

set :deploy_via, :remote_cache
set :copy_exclude, [".git", ".DS_Store", ".gitignore", ".gitmodules"]

server "example.org", :app

namespace :myproject do
    task :symlink, :roles => :app do
        run "ln -nfs #{shared_path}/uploads #{release_path}/application/wp-content/uploads"
        run "touch #{release_path}/env_production"
    end
end

after "deploy:create_symlink", ":after_deploy" 
cap部署的输出

 * executing `deploy'
 * executing `deploy:update'
** transaction: start
 * executing `deploy:update_code'
   updating the cached checkout on all servers
   executing locally: "git ls-remote git@github.com:jeffreynolte/Testing-WP-Workflow.git HEAD"
 * executing "if [ -d /var/www/domain.com/subdomains/wp-workflow/shared/cached-copy ]; then cd /var/www/domain.com/subdomains/wp-workflow/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard 8c10e1f459dc78a127681362386bb84d5fbf3662 && git clean -q -d -x -f; else git clone -q git@github.com:jeffreynolte/Testing-WP-Workflow.git /var/www/domain.com/subdomains/wp-workflow/shared/cached-copy && cd /var/www/domain.com/subdomains/wp-workflow/shared/cached-copy && git checkout -q -b deploy 8c10e1f459dc78a127681362386bb84d5fbf3662; fi"
   servers: ["domain.com"]
   [domain.com] executing command
   command finished in 3905ms
   copying the cached version to /var/www/domain.com/subdomains/wp-workflow/releases/20121026041737
 * executing "rsync -lrpt --exclude=\".git\" --exclude=\".DS_Store\" --exclude=\".gitignore\" --exclude=\".gitmodules\" /var/www/domain.com/subdomains/wp-workflow/shared/cached-copy/ /var/www/domain.com/subdomains/wp-workflow/releases/20121026041737 && (echo 8c10e1f459dc78a127681362386bb84d5fbf3662 > /var/www/domain.com/subdomains/wp-workflow/releases/20121026041737/REVISION)"
   servers: ["domain.com"]
   [domain.com] executing command
   command finished in 577ms
 * executing `deploy:finalize_update'
 * executing "chmod -R g+w /var/www/domain.com/subdomains/wp-workflow/releases/20121026041737"
   servers: ["domain.com"]
   [domain.com] executing command
   command finished in 51ms
 * executing `deploy:symlink'
 * executing "rm -f /var/www/domain.com/subdomains/wp-workflow/current && ln -s /var/www/domain.com/subdomains/wp-workflow/releases/20121026041737 /var/www/domain.com/subdomains/wp-workflow/current"
   servers: ["domain.com"]
   [domain.com] executing command
   command finished in 45ms
** transaction: commit

在当前Capistrano版本中,默认任务
deploy:symlink
已被弃用,并已被
deploy:create_symlink

要使其正常工作,请将最后一行更改为:

after "deploy:create_symlink", "myproject:symlink"

看。您应该在Capistrano输出中看到一个弃用警告。为了使Capistrano输出更具可读性,我极力推荐。

我遇到了完全相同的问题,在做了一些尝试之后,我发现我的问题出在无轨部署gem上。将其更新到1.1.0版后,一切正常

根据上面的配置,env_生产文件应该在
/home/path/to/project/releases/
文件夹中创建,对吗?该文件夹中没有env_生产文件吗?Hi@PrakashMurthy感谢您的回复。该文件不存在于服务器上的任何位置。对于最近的部署,服务器上的
release\u path
变量的确切值是多少?HI@PrakashMurthy-我已经尝试了所有方法。似乎在deploy:symlink之后回调没有运行。有什么想法吗?@jnolte上面显示的代码看起来很好。需要更多的数据。请为运行
cap deploy
cap myproject:symlink
以及
cap-v
提供您的整个Capistrano输出。您好@aef-我以前尝试过这一点,但没有任何运气。我甚至在其他一些回调中使用了我的代码,但运气不佳。就好像它被完全忽略了一样。有什么想法吗?如果这不能解决你的问题,你会使用什么Capistrano版本?如果不是最新版本,请尝试使用
gem install capistrano
更新它。我使用的是最新版本。@jnolte请告诉我
cap--version
的输出。最新版本不应执行
deploy:symlink
任务,这似乎是根据您的日志发生的:
*正在执行
deploy:symlink'`。我怀疑您正在调用的可执行文件不是来自最新安装的gem。