mina console
エラーを発生させますbash: bundle: command not found
ソースコードを確認すると、minaconsoleが行うことは
rails c
を実行しますただし、rvmまたはrbenを使用する場合は、最初にgemsetを使用してRubyバージョンをロードする必要があります。
同じ問題があります。
これはrbenvで私のために働きます:
`` `
タスク:environment do
#rbenvを使用している場合は、これを使用してrbenv環境をロードします。
#必ず.ruby-versionまたは.rbenv-versionをリポジトリにコミットしてください。
呼び出す:' rbenv:load '
#RVMを使用している場合は、これを使用してRVM version@gemsetをロードします。
#invoke:' rvm:use [ruby-1.9。 3-p125 @ default ] '
終わり
desc「インタラクティブなRailsコンソールを起動します。」
task:c =>:environment do
呼び出す:'コンソール'
終わり
`` `
@hovancikありがとう、それは私のために働いています。
しかし、どうすれば修正できますか? ハックなしで、箱から出してすぐに作業できます
これについて、私はまだこの問題を抱えています
私の場合は、最初にrbenvをロードしてから、 bundle
を実行する必要があるためです。
$ mina console -s --trace
** Invoke console (first_time)
** Execute console
** Invoke debug_configuration_variables (first_time)
** Execute debug_configuration_variables
** Invoke run_commands (first_time)
** Execute run_commands
** Invoke environment (first_time)
** Execute environment
** Invoke rbenv:load (first_time)
** Execute rbenv:load
** Invoke nvm:load (first_time)
** Execute nvm:load
#!/usr/bin/env bash
# Executing the following via 'ssh [email protected] -i config/deployment_key -p 22 -tt':
#
echo "-----> Loading rbenv"
export RBENV_ROOT="$HOME/.rbenv"
export PATH="$HOME/.rbenv/bin:$PATH"
if ! which rbenv >/dev/null; then
echo "! rbenv not found"
echo "! If rbenv is installed, check your :rbenv_path setting."
exit 1
fi
eval "$(rbenv init -)"
echo "-----> Loading nvm"
[ -s "/home/deployer/.nvm/nvm.sh" ] && . "/home/deployer/.nvm/nvm.sh"
(cd /home/deployer/app/current && RAILS_ENV="production" bundle exec rails console && cd -)
echo "-----> Loading rbenv"
export RBENV_ROOT="$HOME/.rbenv"
export PATH="$HOME/.rbenv/bin:$PATH"
if ! which rbenv >/dev/null; then
echo "! rbenv not found"
echo "! If rbenv is installed, check your :rbenv_path setting."
exit 1
fi
eval "$(rbenv init -)"
echo "-----> Loading nvm"
[ -s "/home/deployer/.nvm/nvm.sh" ] && . "/home/deployer/.nvm/nvm.sh"
Elapsed time: 0.00 seconds
上記の出力でわかるように、 environment
タスクはconsole
の後に呼び出されます。 また、 rbenv:load
タスクは2回呼び出されます。
現在、私はこのようにやっています:
# This task is the environment that is loaded for all remote run commands, such as
# `mina deploy` or `mina rake`.
task :load_env do
# If you're using rbenv, use this to load the rbenv environment.
# Be sure to commit your .ruby-version or .rbenv-version to your repository.
invoke :'rbenv:load'
invoke :'nvm:load'
end
task environment: :load_env
task console: :load_env
これを修正するためのより実用的な方法はありますか?
mina 1.1.0 local_environment
とremote_environment
が導入されましたhttps://github.com/mina-deploy/mina/commit/972a26ce354e8031a0656c16783c02390c821e33
あなたはそれを使うことができます
最も参考になるコメント
これはrbenvで私のために働きます:
`` `
タスク:environment do
#rbenvを使用している場合は、これを使用してrbenv環境をロードします。
#必ず.ruby-versionまたは.rbenv-versionをリポジトリにコミットしてください。
呼び出す:' rbenv:load '
#RVMを使用している場合は、これを使用してRVM version@gemsetをロードします。
#invoke:' rvm:use [ruby-1.9。 3-p125 @ default ] '
終わり
desc「インタラクティブなRailsコンソールを起動します。」
task:c =>:environment do
呼び出す:'コンソール'
終わり
`` `