bullet-train-co / bullet_train

The Open Source Ruby on Rails SaaS Template
MIT License
1.58k stars 244 forks source link

Problems with `overmind` + `asdf`? #1552

Open jagthedrummer opened 1 week ago

jagthedrummer commented 1 week ago

I've been running without overmind ever since I started using BulletTrain. I just decided to give it a try and I can't get the app to start with it.

$ ./bin/dev
Removing previously linked gems.
Linking 'bullet_train' to '/Users/jgreen/projects/bullet-train-co/bullet_train-core/bullet_train'.
Linking 'bullet_train-fields' to '/Users/jgreen/projects/bullet-train-co/bullet_train-core/bullet_train-fields'.
Linking 'bullet_train-super_scaffolding' to '/Users/jgreen/projects/bullet-train-co/bullet_train-core/bullet_train-super_scaffolding'.
Linking 'bullet_train-themes-light' to '/Users/jgreen/projects/bullet-train-co/bullet_train-core/bullet_train-themes-light'.
Linking 'bullet_train-themes-tailwind_css' to '/Users/jgreen/projects/bullet-train-co/bullet_train-core/bullet_train-themes-tailwind_css'.
system           | Tmux socket name: overmind-bullet-train-sm7RyT-dereOlzQLvbvPd
system           | Tmux session ID: bullet-train
system           | Listening at ./.overmind.sock
light-mailer-css | Started with pid 93208...
js               | Started with pid 93206...
worker           | Started with pid 93205...
light-css        | Started with pid 93207...
web              | Started with pid 93204...
js               | /var/folders/fx/vmqbtyws34j1l88m16_9jy_00000gn/T/overmind-bullet-train-sm7RyT-dereOlzQLvbvPd/js: line 4: yarn: command not found
worker           | /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:283:in `find_spec_for_exe': Could not find 'bundler' (2.4.10) required by your /Users/jgreen/projects/bullet-train-co/bullet_train/Gemfile.lock. (Gem::GemNotFoundException)
worker           | To update to the latest version installed on your system, run `bundle update --bundler`.
worker           | To install the missing version, run `gem install bundler:2.4.10`
worker           |      from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:302:in `activate_bin_path'
worker           |      from /usr/bin/bundle:23:in `<main>'
light-css        | /var/folders/fx/vmqbtyws34j1l88m16_9jy_00000gn/T/overmind-bullet-train-sm7RyT-dereOlzQLvbvPd/light-css: line 4: yarn: command not found
light-mailer-css | /var/folders/fx/vmqbtyws34j1l88m16_9jy_00000gn/T/overmind-bullet-train-sm7RyT-dereOlzQLvbvPd/light-mailer-css: line 4: yarn: command not found
js               | Exited with code 127
light-css        | Exited with code 127
worker           | Exited with code 1
light-mailer-css | Exited with code 127
web              | Interrupting...
web              | /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/3.3.0/rubygems/requirement.rb:106:in `parse': Interrupt
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/3.3.0/rubygems/requirement.rb:139:in `block in initialize'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/3.3.0/rubygems/requirement.rb:139:in `map!'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/3.3.0/rubygems/requirement.rb:139:in `initialize'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/3.3.0/rubygems/requirement.rb:77:in `new'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/3.3.0/rubygems/requirement.rb:77:in `default'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/3.3.0/rubygems/specification.rb:1555:in `add_dependency_with_type'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/3.3.0/rubygems/specification.rb:550:in `add_development_dependency'
web              |      from /Users/jgreen/projects/bullet-train-co/bullet_train-core/bullet_train/bullet_train.gemspec:33:in `block in <main>'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/3.3.0/rubygems/specification.rb:2074:in `initialize'
web              |      from /Users/jgreen/projects/bullet-train-co/bullet_train-core/bullet_train/bullet_train.gemspec:3:in `new'
web              |      from /Users/jgreen/projects/bullet-train-co/bullet_train-core/bullet_train/bullet_train.gemspec:3:in `<main>'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler.rb:632:in `eval'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler.rb:632:in `eval_gemspec'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler.rb:547:in `block in load_gemspec_uncached'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/shared_helpers.rb:52:in `chdir'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/shared_helpers.rb:52:in `block in chdir'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/shared_helpers.rb:51:in `synchronize'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/shared_helpers.rb:51:in `chdir'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler.rb:546:in `load_gemspec_uncached'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler.rb:532:in `load_gemspec'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/source/path.rb:162:in `load_gemspec'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/source/path.rb:177:in `block in load_spec_files'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/source/path.rb:176:in `each'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/source/path.rb:176:in `load_spec_files'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/source/path.rb:107:in `local_specs'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/source/path.rb:115:in `specs'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/definition.rb:641:in `specs_for_source_changed?'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/definition.rb:626:in `specs_changed?'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/definition.rb:678:in `block in converge_paths'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/definition.rb:677:in `any?'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/definition.rb:677:in `converge_paths'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/definition.rb:136:in `initialize'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/dsl.rb:218:in `new'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/dsl.rb:218:in `to_definition'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/dsl.rb:13:in `evaluate'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/definition.rb:37:in `build'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler.rb:217:in `definition'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler.rb:165:in `setup'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/setup.rb:10:in `block in <top (required)>'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/ui/shell.rb:159:in `with_level'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/ui/shell.rb:111:in `silence'
web              |      from /Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/gems/3.3.0/gems/bundler-2.4.10/lib/bundler/setup.rb:10:in `<top (required)>'
web              |      from <internal:/Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
web              |      from <internal:/Users/jgreen/.asdf/installs/ruby/3.3.2/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
web              |      from /Users/jgreen/projects/bullet-train-co/bullet_train/config/boot.rb:3:in `<top (required)>'
web              |      from bin/rails:3:in `require_relative'
web              |      from bin/rails:3:in `<main>'
web              | Exited with code 0

It looks like the worker process thinks that the bundle command is unavailable, and the js, light-css, and light-mailer-css processes think that the yarn command is unavailable.

But if I do this outside of overmind they are found:

$ bundle --version
Bundler version 2.4.10
$ yarn --version
4.2.2

The commands are also found via overmind run (but bin/dev uses overmind start):

$ overmind run bundle --version
Bundler version 2.4.10
$ overmind run yarn --version
4.2.2

If I alter bin/dev to skip overmind and run things via foreman it all works as expected.

$ ./bin/dev
Removing previously linked gems.
Linking 'bullet_train' to '/Users/jgreen/projects/bullet-train-co/bullet_train-core/bullet_train'.
Linking 'bullet_train-fields' to '/Users/jgreen/projects/bullet-train-co/bullet_train-core/bullet_train-fields'.
Linking 'bullet_train-super_scaffolding' to '/Users/jgreen/projects/bullet-train-co/bullet_train-core/bullet_train-super_scaffolding'.
Linking 'bullet_train-themes-light' to '/Users/jgreen/projects/bullet-train-co/bullet_train-core/bullet_train-themes-light'.
Linking 'bullet_train-themes-tailwind_css' to '/Users/jgreen/projects/bullet-train-co/bullet_train-core/bullet_train-themes-tailwind_css'.
15:27:45 web.1              | started with pid 95533
15:27:45 worker.1           | started with pid 95534
15:27:45 js.1               | started with pid 95535
15:27:45 light-css.1        | started with pid 95536
15:27:45 light-mailer-css.1 | started with pid 95537
15:27:46 js.1               | resolveDir /Users/jgreen/projects/bullet-train-co/bullet_train/app/javascript/controllers
15:27:46 js.1               | path ./**/*_controller.js
15:27:46 web.1              | => Booting Puma
15:27:46 web.1              | => Rails 7.1.3.4 application starting in development
15:27:46 web.1              | => Run `bin/rails server --help` for more startup options
15:27:47 web.1              | [95533] Puma starting in cluster mode...
15:27:47 web.1              | [95533] * Puma version: 6.4.2 (ruby 3.3.2-p78) ("The Eagle of Durango")
15:27:47 web.1              | [95533] *  Min threads: 5
15:27:47 web.1              | [95533] *  Max threads: 5
15:27:47 web.1              | [95533] *  Environment: development
15:27:47 web.1              | [95533] *   Master PID: 95533
15:27:47 web.1              | [95533] *      Workers: 4
15:27:47 web.1              | [95533] *     Restarts: (✔) hot (✖) phased
15:27:47 web.1              | [95533] * Preloading application
15:27:47 web.1              | [95533] * Listening on http://127.0.0.1:3000
15:27:47 web.1              | [95533] * Listening on http://[::1]:3000
15:27:47 web.1              | [95533] Use Ctrl-C to stop
15:27:47 web.1              | [95533] - Worker 0 (PID: 95954) booted in 0.01s, phase: 0
15:27:47 web.1              | [95533] - Worker 1 (PID: 95955) booted in 0.0s, phase: 0
15:27:47 web.1              | [95533] - Worker 2 (PID: 95956) booted in 0.0s, phase: 0
15:27:47 web.1              | [95533] - Worker 3 (PID: 95957) booted in 0.0s, phase: 0
15:27:48 worker.1           | 2024-06-19T20:27:48.103Z pid=95534 tid=202m INFO: Booted Rails 7.1.3.4 application in development environment
15:27:48 worker.1           | 2024-06-19T20:27:48.103Z pid=95534 tid=202m INFO: Running in ruby 3.3.2 (2024-05-30 revision e5a195edf6) [arm64-darwin23]
15:27:48 worker.1           | 2024-06-19T20:27:48.103Z pid=95534 tid=202m INFO: See LICENSE and the LGPL-3.0 for licensing details.
15:27:48 worker.1           | 2024-06-19T20:27:48.103Z pid=95534 tid=202m INFO: Upgrade to Sidekiq Pro for more features and support: https://sidekiq.org
15:27:48 worker.1           | 2024-06-19T20:27:48.104Z pid=95534 tid=202m INFO: Sidekiq 7.2.4 connecting to Redis with options {:size=>10, :pool_name=>"internal", :url=>nil}
15:27:48 worker.1           | 2024-06-19T20:27:48.109Z pid=95534 tid=202m INFO: Sidekiq 7.2.4 connecting to Redis with options {:size=>5, :pool_name=>"default", :url=>nil}
15:27:48 light-css.1        |
15:27:48 light-css.1        | Rebuilding...
15:27:50 light-css.1        |
15:27:50 light-css.1        | Done in 1247ms.
15:27:50 light-mailer-css.1 |
15:27:50 light-mailer-css.1 | Rebuilding...
15:27:50 light-mailer-css.1 |
15:27:50 light-mailer-css.1 | Done in 485ms.

Possibly related to: https://github.com/DarthSim/overmind/issues/74

jagthedrummer commented 1 week ago

I discovered that I can get overmind to work if there's only one process listed in Procfile.dev so I opened an issue about that.

https://github.com/DarthSim/overmind/issues/184