簡體   English   中英

Rails Capistrano rbenv Puma 包:找不到命令

[英]Rails Capistrano rbenv Puma bundle: Command not found

我正在嘗試將 cap staging deploy 運行到 AWS 實例,這是我們的臨時服務器。 一切正常,包括捆綁安裝......但是當它運行 Puma 服務器時它失敗了:

Command: cd /home/ubuntu/medcordance/current && ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.5.0" RACK_ENV="staging" ; bundle exec puma -C /home/ubuntu/app_name/shared/puma.rb --daemon )

 DEBUG [02658949]   bash: bundle: command not found

我已經檢查了解決方案的高低。 我找不到一個。 我運行了 gem install bundler,我確認安裝了 bundler,我已經用我知道應該工作的每個設置配置了 Capistrano,但我仍然找不到解決方案。

頭文件:

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

# Include default deployment tasks
require "capistrano/deploy"

# Load the SCM plugin appropriate to your project:
#
# require "capistrano/scm/hg"
# install_plugin Capistrano::SCM::Hg
# or
# require "capistrano/scm/svn"
# install_plugin Capistrano::SCM::Svn
# or
require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git

# Include tasks from other gems included in your Gemfile
#
# For documentation on these, see for example:
#
#   https://github.com/capistrano/rvm
#   https://github.com/capistrano/rbenv
#   https://github.com/capistrano/chruby
#   https://github.com/capistrano/bundler
#   https://github.com/capistrano/rails
#   https://github.com/capistrano/passenger
#
require 'capistrano/rails'
# require "capistrano/rvm"
require "capistrano/rbenv"
require "capistrano/bundler"
# require "capistrano/chruby"
require "capistrano/rails/assets"
require "capistrano/rails/migrations"

require "capistrano/puma"
install_plugin Capistrano::Puma  # Default puma tasks

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

部署:

lock "~> 3.10.1"

set :application, "app_name"
set :repo_url, "my bitbucket"
set :branch, 'master'

set :use_sudo, true

set :rbenv_type, :user
set :rbenv_ruby, '2.5.0'
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec"
set :rbenv_map_bins, %w{rake gem bundle ruby rails}
set :rbenv_roles, :all # default value

# Default branch is :master
# ask :branch, `git rev-parse --abbrev-ref HEAD`.chomp

# Default deploy_to directory is /var/www/my_app_name
set :deploy_to, "/home/ubuntu/app_name"

想通了。 結果是我的 config/deploy.rb 文件中的這一行:

set :rbenv_map_bins, %w{rake gem bundle ruby rails}

通過刪除它的工作...

對我來說, config/deploy.rb添加到config/deploy.rb

append :asdf_map_ruby_bins, 'puma', 'pumactl' # I use asdf to manage ruby plugins

# Or
# append :rbenv_map_bins, 'puma', 'pumactl' if you're using Rbenv, like OP

解決了這個問題。 希望它可以幫助某人!

參考: https : //github.com/seuros/capistrano-puma/issues/188

NB* append是新的 Capistrano 語法,但set仍然有效

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM