mina console
erro de aumento bash: bundle: command not found
Enquanto reviso o código-fonte, o que o mina console faz é
rails c
No entanto, quando usamos rvm ou rben, precisamos primeiro carregar a versão ruby com gemset.
Eu escrevi o mesmo problema https://github.com/mina-deploy/mina/issues/476
Eu tenho o mesmo problema.
Isso funciona para mim com rbenv:
```
tarefa: ambiente fazer
# Se você estiver usando rbenv, use isso para carregar o ambiente rbenv.
# Certifique-se de confirmar sua versão .ruby ou .rbenv-version em seu repositório.
invocar :' rbenv:load '
# Para aqueles que usam RVM, use isso para carregar um RVM version@gemset.
# invoca :' rvm:use [ruby-1.9. 3-p125@default ]'
fim
desc "Inicia um console interativo do Rails."
tarefa :c => :ambiente fazer
invocar :'console'
fim
```
@hovancik Obrigado, funcionou para mim.
Mas como isso pode ser corrigido? Para trabalhar fora da caixa, sem nenhum hack
por favor, dê uma olhada em https://github.com/mina-deploy/mina/blob/master/docs/faq.md# --command-not-found-bundle
Sobre isso, ainda tenho esse problema
No meu caso é porque eu preciso carregar o rbenv primeiro para depois executar 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
Como você pode ver na saída acima, a tarefa environment
é chamada após o console
. Também a tarefa rbenv:load
é chamada duas vezes.
Atualmente estou fazendo assim:
# 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
Existe uma maneira mais prática de corrigir isso?
mina 1.1.0 introduziu local_environment
e remote_environment
https://github.com/mina-deploy/mina/commit/972a26ce354e8031a0656c16783c02390c821e33
Você pode usar isso
Comentários muito úteis
Isso funciona para mim com rbenv:
```
tarefa: ambiente fazer
# Se você estiver usando rbenv, use isso para carregar o ambiente rbenv.
# Certifique-se de confirmar sua versão .ruby ou .rbenv-version em seu repositório.
invocar :' rbenv:load '
# Para aqueles que usam RVM, use isso para carregar um RVM version@gemset.
# invoca :' rvm:use [ruby-1.9. 3-p125@default ]'
fim
desc "Inicia um console interativo do Rails."
tarefa :c => :ambiente fazer
invocar :'console'
fim
```