我正在尝试在 jetty 上没有root用户的情况下运行RoR项目。我使用的是官方的 ruby 图像,当我以非root用户身份执行bundle install时一切正常,但是当我运行rails s -b '0.0.0.0'bundle exec rails s -b '0.0.0.0'时,出现此错误:



这是我的Dockerfile:

FROM ruby:2.6.3

COPY controleGarrafao/ /home/docker/controleGarrafao

RUN apt-get update -qq && apt-get install sudo
WORKDIR /home/docker/controleGarrafao
RUN chmod +x /usr/bin/docker_entrypoint.sh
RUN chmod 777 /usr/local/bin/bundle

RUN useradd -m docker && echo "docker:docker" | \
    chpasswd

RUN echo "docker ALL=(ALL:ALL) NOPASSWD: ALL" | \
    tee -a /etc/sudoers

RUN chmod 777 /home/docker

USER docker
RUN bundle install
EXPOSE 3000

有人可以帮我弄这个吗?

最佳答案

看来问题出在您的错误消息所指示的gem bootsnap上。

如果您查看bootsnap documentation,您将看到以下内容:



“此行”是指require 'bootsnap/setup'中的config/boot.rb
因此,您需要确保tmp / cache目录在您的容器中可写,或者从config/boot.rb中删除bootsnap行

10-06 05:30
查看更多