我正在尝试在 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行