【发布时间】:2018-09-12 05:16:26
【问题描述】:
我正在尝试将 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 配置了我知道应该工作的所有设置,但我仍然找不到解决方案。
Capfile:
# 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"
【问题讨论】:
-
bundle安装在哪里?也许该脚本在$PATH中没有。使用which bundle,然后在脚本中确保它在echo $PATH中。 -
/home/ubuntu/.rbenv/shims/bundle 如何确保它在回显路径中?
-
编辑任何失败的脚本并在那里添加
echo $PATH。 -
对不起,这对我没有帮助,你能说得更具体点吗?
-
也许了解 Capistrano 的人能够提供更好的帮助。但从我的角度来看,您有一个日志文件,其中包含一个错误,指出找不到
bundle。该日志文件是由某个脚本创建的。你没有指定哪个。我的建议是您找到该脚本并对其进行编辑以查看其PATH环境变量中的内容。我会在不包含/home/ubuntu/.rbenv/shims的情况下投入资金。
标签: ruby-on-rails amazon-web-services capistrano rbenv puma