Я играю с конвейером автоматизации микросервисов, который строит кучу шаблонного кода.
В настоящее время код конвейера автоматически запускается через guard и генерирует сценарий оболочки для создания баз данных, создания нового приложения rails и других типов ресурсов.
Я запускаю ruby & rails в RbEnv, и скрипт, который я выполняю, отлично работает из командной строки, он создает новое приложение Rails 6.
Но когда я запускаю его из Guard, в котором уже есть приложение среды Rails 5.2, новое приложение создается как приложение Rails 5.2.
Я попытался переопределить определенные настройки, но он по-прежнему выбирает среду, в которой работает мой код.
Когда я запускаю скрипт из командной строки:
echo 'SHOULD CREATE A RAILS APP using VERSION 6.0.0 on RUBY 2.6.3'
gem install rails -v 6.0.0
echo 'rails -v'
rails -v
echo 'rbenv local'
rbenv local
echo 'rbenv version'
rbenv version
echo 'rbenv versions'
rbenv versions
rails _6.0.0_ new . -d postgresql --force --skip-action-mailer --skip-action-mailbox --skip-action-text --skip-spring --skip-test --skip-bundle --skip-webpack-install
Я получаю следующий выходной журнал
Successfully installed rails-6.0.0
1 gem installed
SHOULD CREATE A RAILS APP using VERSION 6.0.0 on RUBY 2.6.3
rails -v
Rails 6.0.0
rbenv local
2.6.3
rbenv version
2.6.3 (set by /Users/myname/dev/myapp/.ruby-version)
rbenv versions
system
2.4.1
2.4.6
2.5.3
* 2.6.3 (set by /Users/myname/dev/myapp/.ruby-version)
Со следующим файлом GEM
ruby '2.6.3'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 6.0.0'
# Use postgresql as the database for Active Record
gem 'pg', '>= 0.18', '< 2.0'
# Use Puma as the app server
И подтверждение через последнюю строку, что приложение Rails 6
remove config/initializers/new_framework_defaultsrails -v
Rails 5.2.3
rbenv local
rbenv: no local version configured for this directory
rbenv version
2.5.3 (set by RBENV_VERSION environment variable)
rbenv versions
system
2.4.1
2.4.6
* 2.5.3 (set by RBENV_VERSION environment variable)
2.6.3
0.rb
Когда я запускаю один и тот же скрипт из Ruby, используя вариации в system и fork {exec {}}
Dir.chdir File.dirname(output_file) do
# fork { exec("bash #{output_file}") }
system "bash #{output_file}"
# system "/usr/local/bin/zsh #{output_file}"
end
Я получаю Rails 5.2
rails -v
Rails 5.2.3
rbenv local
rbenv: no local version configured for this directory
rbenv version
2.5.3 (set by RBENV_VERSION environment variable)
rbenv versions
system
2.4.1
2.4.6
* 2.5.3 (set by RBENV_VERSION environment variable)
2.6.3
rails new
? - person Josh Brody   schedule 14.09.2019