Error of bundle install with App Development from GUI environment

Dear developers,

When I try to run a bundle install with App Development on Open OnDemand (v3.1.10), I get an error.

Here’s how to reproduce this: First, get the simple repository.

$ cd ~/ondemand/dev
$ git clone https://github.com/mnakao/test-ood.git test
$ ls -A test/
.git  Gemfile  config.ru  manifest.yml
$ cat test/Gemfile
source "https://rubygems.org"
gem "sinatra"

In the navigation bar, click “Develop” → “My Sandbox Apps” → “Details” → “bundle install”.

You will see a pop-up window like this:

The contents of the directory are as shown below, and the “vendor” directory is not found.

$ ls -A test/
.bundle  .git  Gemfile  Gemfile.lock  config.ru  manifest.yml

To see the details of the error message, I added “puts line” to line 124 in “./dashboard/app/controllers/products_controller.rb”.

Open3.popen2e(*cmd) do |i, o, t|
  o.each do |line|
    response.stream.write line
    puts line # <-- Add
  end

The results are as follows:

App 342841 output: [DEPRECATED] The `--path` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local path 'vendor/bundle'`, and stop using this flag
App 342841 output: `` is not a directory.
App 342841 output: Bundler will use `/tmp/bundler20241223-342940-qkr9h6342940' as your home directory temporarily.
App 342841 output: Fetching gem metadata from https://rubygems.org/....
App 342841 output: Using bundler 2.3.27
App 342841 output: Using logger 1.6.2
App 342841 output: Using ruby2_keywords 0.0.5
App 342841 output: Using rack 3.1.8
App 342841 output: Using tilt 2.4.0
App 342841 output: Using base64 0.2.0
App 342841 output: Using mustermann 3.0.3
App 342841 output: Using rack-session 2.0.0
App 342841 output: Using rack-protection 4.1.1
App 342841 output: Using sinatra 4.1.1
App 342841 output: Bundle complete! 1 Gemfile dependency, 10 gems now installed.
App 342841 output: Use `bundle info [gemname]` to see where a bundled gem is installed.

I’m concerned about the second line, “`` is not a directory.” It looks like the environment variables are not being inherited. Note that when I log in directly to the Open OnDemand server and run the command “bundle install --path=vendor/bundle” via SSH, it works fine. However, some sites may not be able to log in to the Open OnDemand server, so there is a demand to do everything via GUI.

If you have any information to help resolve this issue, please let me know.

Best,

Hello!

I’ve created an issue for your question, because we know this workflow currently doesn’t work:

We build on a compute node that runs the same Ruby version as the web node and therefore don’t have to login to the web node. Hopefully something like this can work for you as an alternative while we work on this patch.

Regards!

1 Like