Не уверен, относится ли проблема к concurrent-ruby
или нет, но require
не работает должным образом. Я немного в недоумении, как отладить это. Он работает, когда запускается как обычный пользователь вне Docker в Ubuntu. К сожалению, невозможно определить процесс внутри Docker, чтобы увидеть, где он расходится. Есть идеи?
Обновление: похоже, проблема связана с опцией --path ./vendor/bundle
- она работает без нее, не работает с ней.
FROM alpine:3.10.2
RUN apk add bash
SHELL ["/bin/bash", "-c"]
RUN apk add npm ruby-bundler
RUN mkdir /app
WORKDIR /app
RUN echo -e "source 'https://rubygems.org'\n\
gem 'concurrent-ruby', require: 'concurrent'\n" >> ./Gemfile
RUN bundle install --path ./vendor/bundle
RUN ruby -e 'require("concurrent")'
Выходы:
Step 9/9 : RUN ruby -e 'require("concurrent")'
---> Running in efbb0ed5794f
/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require': cannot load such file -- concurrent (LoadError)
from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
from -e:1:in `<main>'
The command '/bin/bash -c ruby -e 'require("concurrent")'' returned a non-zero code: 1