标签: capistrano3

Capistrano 3. shared_pa​​th变量中的路径错误

我试图用Capistrano 3创建Unicorn重启任务:

首先,我设置*unicorn_pid*变量:

set :unicorn_pid, "#{shared_path}/tmp/pids/unicorn.pid"

然后我将它传递给重启任务:

  desc 'Restart application'
  task :restart do
    on roles(:app), in: :sequence, wait: 5 do
      execute :kill, "-USR2 `cat #{fetch(:unicorn_pid)}`" if test "[ -f #{fetch(:unicorn_pid)} ]"
      within release_path do
        execute :bundle, "exec unicorn -D -c config/unicorn.rb -E #{fetch(:stage)}"
      end
    end
  end
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时cap production deploy:restart我看到:

DEBUG [f4159760] Running /usr/bin/env [ -f /var/www/shared/tmp/pids/unicorn.pid ] on dev.project.net
DEBUG [f4159760] Command: [ -f /var/www/shared/tmp/pids/unicorn.pid ]
Run Code Online (Sandbox Code Playgroud)

所以,而不是/home/user/project/shared/路径,#{shared_pa​​th}转换为/var/www/shared/

但是当我直接在任务中指定这个路径时,没有unicorn_pid变量,我在输出中看到:

 INFO [567856e3] Running /usr/bin/env kill -USR2 `cat …
Run Code Online (Sandbox Code Playgroud)

capistrano ruby-on-rails unicorn capistrano3

1
推荐指数
1
解决办法
5191
查看次数

无法使用capistrano部署项目

我有一个ruby on rails项目要与capistrano一起部署.基本上我可以使用以下代码部署它.

cap production deploy
Run Code Online (Sandbox Code Playgroud)

但它给了我以下失败信息.

** Invoke staging (first_time)
** Execute staging
** Invoke load:defaults (first_time)
** Execute load:defaults
cap aborted!
Capfile locked at 3.2.1, but 3.3.3 is loaded
Run Code Online (Sandbox Code Playgroud)

我在这个例外上找不到任何东西.你知道什么是真正的问题.BTW捆绑更新不起作用.

capistrano ruby-on-rails capistrano3

1
推荐指数
1
解决办法
2658
查看次数

capistrano 3.4 中的用户输入

根据 capistrano 的文档,我可以使用 ask() 方法获取用户输入。我创建了以下任务:

desc "Ask for user input"
task :ask_for_user_input do
  ask ':update_assets', 'Update assets (y/n, default=n)?', 'n'
end
Run Code Online (Sandbox Code Playgroud)

在 deploy.rb 我有

namespace :deploy do
  ...
  before :deploy, "deploy:ask_for_user_input"
  ...
end
Run Code Online (Sandbox Code Playgroud)

但无论如何,capistrano 从不要求用户输入。我尝试了不同的变体(例如,将“ask”方法直接放在 deploy.rb 或我的阶段文件中,但它没有改变任何东西。我在这里错过了什么?

capistrano capistrano3

1
推荐指数
1
解决办法
994
查看次数

如何将 Capistrano 3 中执行的命令转换为变量?

我正在尝试在我的 deploy.rb 中执行如下命令:

results = execute 'somecommand'

似乎没有execute返回命令的结果。这样做的正确方法是什么?

ruby capistrano capistrano3

1
推荐指数
1
解决办法
924
查看次数

Capistrano 多个部署阶段

我有一个 Rails 应用程序,我想使用 Capistrano 部署两个版本:productionstaging.

在我的 deploy.rb 文件中,我有: set :stages, ['staging', 'production']

那么如何在不覆盖它们的情况下使用两条路径?

set :deploy_to, '/home/deploy/Sites/staging/myname'

set :deploy_to, '/home/deploy/Sites/production/myname'

我看过这个答案,但我想保持命令行干净。

deployment ruby-on-rails capistrano3

1
推荐指数
1
解决办法
1179
查看次数

无法在capistrano 3中启动Unicorn服务器

这是我的config/unicorn/development.rb

app_path = "/home/ec2-user/apps/app_dev/current"

worker_processes 1
preload_app false
timeout 300
listen 3333

working_directory app_path
pid "#{app_path}/tmp/pids/unicorn.pid"

rails_env = 'development'

stderr_path "log/unicorn.log"
stdout_path "log/unicorn.log"
Run Code Online (Sandbox Code Playgroud)

这是我的Capfile

# Load DSL and Setup Up Stages
require 'capistrano/setup'

# Includes default deployment tasks
require 'capistrano/deploy'


require 'capistrano/rvm'
# require 'capistrano/rbenv'
# require 'capistrano/chruby'
require 'capistrano/bundler'
# require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
require 'capistrano3/unicorn'
# require 'sidekiq/capistrano'

# Loads custom tasks from `lib/capistrano/tasks' if you have any defined.
Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }
Run Code Online (Sandbox Code Playgroud)

"cap development unicorn:start" …

amazon-ec2 unicorn ruby-on-rails-4 capistrano3

0
推荐指数
1
解决办法
3486
查看次数

Creating and calling custom deployment task using run_locally in Capistrano version 3

I have a static page that I want to compile locally using gulp. The command I would run in the local shell, from the directory that contains gulp and the gulpfile (set by compile_path in this example) would be "$> gulp build".

# config valid only for Capistrano 3.1
lock '3.1.0'  

set :application, 'appname'
set :repo_url, 'git@bitbucket.org/appname.git'
set :compile_path, '/Users/nico/DevOps/repo/appname'

# Default branch is :master
set :branch, 'cap3'

namespace :deploy do

  after :started, :notify do 
    desc 'Run gulp to compile …
Run Code Online (Sandbox Code Playgroud)

capistrano capistrano3

0
推荐指数
1
解决办法
7319
查看次数

Puma:未找到状态文件

我正在尝试使用 Capistrano 部署 Rails 应用程序。我有一个问题bundler: command not found: pumactl,我似乎已经通过将 puma gem 添加到:development组外的 Gemfile 中解决了这个问题。

文件

source 'https://rubygems.org'

gem 'rails', '4.2.0'
gem 'sass-rails', '~> 5.0'
gem 'semantic-ui-sass', github: 'doabit/semantic-ui-sass'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'mongoid'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'prawn-rails', '0.1.1'
gem 'fastimage', '1.6.6'
gem 'mini_magick', '4.0.4'
gem 'carrierwave', '0.10.0'
gem 'puma', '2.11.1'

group :development, :test do
  gem 'capistrano', '3.3.5'
  gem 'capistrano-rvm', …
Run Code Online (Sandbox Code Playgroud)

capistrano ruby-on-rails puma ruby-on-rails-4 capistrano3

0
推荐指数
1
解决办法
2180
查看次数

Capistrano:显式调用`deploy:assets:precompile`时未编译的资产

我可以在本地Rails 4.1项目中编译我的资产,如下所示:

$ RAILS_ENV=staging bin/rake assets:precompile

I, [2015-03-26T17:23:21.632726 #26321]  INFO -- : Writing /MyProject/public/assets/active_admin-a46314b7dc1a06e662695c2093e33d96.js
I, [2015-03-26T17:23:21.748271 #26321]  INFO -- : Writing /MyProject/public/assets/application-adc2c7c08b35fae05d8bfc73d1696dea.js
I, [2015-03-26T17:23:21.833131 #26321]  INFO -- : Writing /MyProject/public/assets/active_admin-36d00173ec2474695cd54a330636bac9.css
I, [2015-03-26T17:23:21.851637 #26321]  INFO -- : Writing /MyProject/public/assets/application-0930e157132302bc8b8666143a832af2.css
I, [2015-03-26T17:23:21.861676 #26321]  INFO -- : Writing /MyProject/public/assets/debug-aeffd81aa2ee2b35a0d779b9335c9749.css
Run Code Online (Sandbox Code Playgroud)

也可以直接服务器上使用rake创建资产:

user@server$ RAILS_ENV=staging bundle exec rake assets:precompile

I, [2015-03-26T17:40:11.761707 #30743]  INFO -- : Writing /var/www/my_project/releases/20150326161842/public/assets/active_admin-a46314b7dc1a06e662695c2093e33d96.js
I, [2015-03-26T17:40:11.806881 #30743]  INFO -- : Writing /var/www/my_project/releases/20150326161842/public/assets/application-adc2c7c08b35fae05d8bfc73d1696dea.js
I, [2015-03-26T17:40:11.847215 #30743]  INFO -- : Writing …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails asset-pipeline ruby-on-rails-4 capistrano3

0
推荐指数
1
解决办法
4920
查看次数

rails 4找不到rbenv包

我正在尝试将带有Ruby 2.2.3和Capistrano 3的Rails 4.2.4应用程序部署到VPS服务器.我之前已经多次使用RVM完成了这项工作并且对我的其他应用程序没有任何问题,但是现在我在新机器和服务器上使用rbenv,我得到一个堆栈跟踪,如下所示:

DEBUG [a326a4c8] Command: cd /home/deploy/myapp/releases/20151226231303 && /usr/bin/env bundle install --path /home/deploy/myapp/shared/bundle --without development test --deployment --quiet
DEBUG [a326a4c8]    /usr/bin/env: 
DEBUG [a326a4c8]    bundle: No such file or directory
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as deploy@youspoof.us: bundle exit status: 127
bundle stdout: Nothing written
bundle stderr: /usr/bin/env: bundle: No such file or directory

SSHKit::Command::Failed: bundle exit status: 127
bundle stdout: Nothing written
bundle stderr: /usr/bin/env: bundle: No such file or directory

Tasks: TOP => deploy:updated => bundler:install …
Run Code Online (Sandbox Code Playgroud)

bundler ruby-on-rails-4 capistrano3

0
推荐指数
1
解决办法
1066
查看次数