这里是ruby和bundler的新手。 我正在使用此docker文件在docker镜像中安装它们:
FROM alpine:3.5
# Install Ruby, Ruby Bundler and other ruby dependencies
RUN apk add --update \
ruby ruby-bigdecimal ruby-bundler \
ca-certificates libressl \
libressl-dev build-base ruby-dev \
ruby-rdoc ruby-io-console ruby-irb; \
\
&& bundle config build.nokogiri --use-system-libraries; \
&& bundle config git.allow_insecure true; \
\
&& gem install json foreman --no-rdoc --no-ri; \
&& gem cleanup; \
&& rm -rf /usr/lib/ruby/gems/*/cache/*; \
&& apk del libressl-dev build-base ruby-dev; \
&& rm -rf /var/cache/apk/* /tmp;
CMD ["bundle"]
当我跑步时,我会得到:
Don't run Bundler as root. Bundler can ask for sudo if it is needed,
and installing your bundle as root will break this application for all
non-root users on this machine.
Could not locate Gemfile or .bundle/ directory
我该如何解决这个问题?我只想安装ruby和ruby-bundle并完成这个......
答案 0 :(得分:4)
包含bundler
的预制ruby张图片(Alpine 3.6 Ruby 2.4)。它们更容易开始,因为它们通常使用当前的最佳实践"建立。
请注意,他们在映像构建中使用BUNDLE_SILENCE_ROOT_WARNING
指令设置了ENV
环境变量,以删除root
警告。
您通常不会将[{1}}作为容器的CMD
运行,但您可以在RUN
图片构建步骤中运行bundler
。
在任何情况下,以非root用户身份运行容器都不是一个坏主意。使用USER
指令进行更改。
bundler