basecamp / thruster

MIT License
912 stars 31 forks source link

Version 0.1.9 "No such file or directory" #54

Open MattKitmanLabs opened 4 days ago

MattKitmanLabs commented 4 days ago

Since updating to 0.1.9 we seem to be getting an issue on boot:

The Docker image is an Alpine Linux Ruby 3.1.6

bundler: failed to load command: thrust (/usr/local/bundle/ruby/3.1.0/bin/thrust)
/usr/local/bundle/ruby/3.1.0/gems/thruster-0.1.9-x86_64-linux/exe/thrust:7:in `exec': No such file or directory - /usr/local/bundle/ruby/3.1.0/gems/thruster-0.1.9-x86_64-linux/exe/x86_64-linux/thrust (Errno::ENOENT)
    from /usr/local/bundle/ruby/3.1.0/gems/thruster-0.1.9-x86_64-linux/exe/thrust:7:in `<top (required)>'
    from /usr/local/bundle/ruby/3.1.0/bin/thrust:25:in `load'
    from /usr/local/bundle/ruby/3.1.0/bin/thrust:25:in `<top (required)>'
    from /usr/local/bundle/ruby/3.1.0/gems/bundler-2.5.21/lib/bundler/cli/exec.rb:58:in `load'
    from /usr/local/bundle/ruby/3.1.0/gems/bundler-2.5.21/lib/bundler/cli/exec.rb:58:in `kernel_load'
    from /usr/local/bundle/ruby/3.1.0/gems/bundler-2.5.21/lib/bundler/cli/exec.rb:23:in `run'
    from /usr/local/bundle/ruby/3.1.0/gems/bundler-2.5.21/lib/bundler/cli.rb:455:in `exec'
    from /usr/local/bundle/ruby/3.1.0/gems/bundler-2.5.21/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
    from /usr/local/bundle/ruby/3.1.0/gems/bundler-2.5.21/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
    from /usr/local/bundle/ruby/3.1.0/gems/bundler-2.5.21/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
    from /usr/local/bundle/ruby/3.1.0/gems/bundler-2.5.21/lib/bundler/cli.rb:35:in `dispatch'
    from /usr/local/bundle/ruby/3.1.0/gems/bundler-2.5.21/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
    from /usr/local/bundle/ruby/3.1.0/gems/bundler-2.5.21/lib/bundler/cli.rb:29:in `start'
    from /usr/local/bundle/ruby/3.1.0/gems/bundler-2.5.21/exe/bundle:28:in `block in <top (required)>'
    from /usr/local/bundle/ruby/3.1.0/gems/bundler-2.5.21/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
    from /usr/local/bundle/ruby/3.1.0/gems/bundler-2.5.21/exe/bundle:20:in `<top (required)>'
    from /usr/local/bundle/bin/bundle:25:in `load'
    from /usr/local/bundle/bin/bundle:25:in `<main>'

If I access the container I can see the following:

/usr/local/bundle/ruby/3.1.0/gems/thruster-0.1.9-x86_64-linux/exe/x86_64-linux $ ls
thrust
jm379 commented 2 days ago

I had the same problem when using thrust with Ruby 3.3.6 and Alpine 3.20 docker image.

It seems to be related to musl, as ldd reports that __vfprintf_chk and __fprintf_chk symbols weren't found.

I added the gcompat package to my Dockerfile to fix this problem, as it provides a compatibility layer between glibc and musl.

Another way to resolve this problem is to use the Bookworm image instead of Alpine.