人们报告此错误并通过删除包含缓存的 gem 的文件夹来解决它。由于我在 Docker 容器中工作,因此这对我来说似乎没有帮助。实际上,缓存文件夹不是空的,而是包含两个项目(我猜它们来自gem install bundle
)。
这是我的(错误的)dockerfile
FROM nginx
RUN apt-get update -qqy && \
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
没有帮助。