Ошибка Bundler GemspecError при сборке внутри контейнера Docker

#ruby #bundle #jekyll #gemspecs

#ruby #пакет #джекилл #gemspecs

Вопрос:

Люди сообщали об этой ошибке и решили ее, удалив папку, содержащую кэшированные драгоценные камни. Поскольку я работаю внутри контейнера Docker, это не показалось мне полезным советом. Действительно, папка кэша не была пустой, но содержала два элемента (я предполагаю, что они там gem install bundle ).

Это мой (неисправный) файл dockerfile

 FROM nginx

RUN apt-get update -qqy amp;amp; 
    apt-get install -qqy 
        build-essential 
        ruby-full 
        ruby-dev

RUN gem install bundle

RUN useradd -ms /bin/bash udo

USER udo
WORKDIR /home/udo

COPY . .

RUN bundle install
RUN bundle exec -- jekyll build

USER root
RUN cp -r _site/* /usr/share/nginx/html
  

Я мог бы исправить ошибку, заменив RUN bundle install на

 RUN bundle install --path=tmp
  

за счет наличия этого локального tmp каталога, который мне затем пришлось добавить в список исключений в _config.yml for Jekyll.

Я бы предпочел знать, что происходит на самом деле. Я подозреваю, что есть проблема с тем, как я использую пользователя, не являющегося пользователем root.

Примечание: bundle install --no-cache не помогло.