如何使用dockerfile安装ruby和bundler?

时间:2017-10-18 21:15:04

标签: ruby docker bundler dockerfile root

这里是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并完成这个......

1 个答案:

答案 0 :(得分:4)

包含bundler的预制ruby张图片(Alpine 3.6 Ruby 2.4)。它们更容易开始,因为它们通常使用当前的最佳实践"建立。

请注意,他们在映像构建中使用BUNDLE_SILENCE_ROOT_WARNING指令设置了ENV环境变量,以删除root警告。

您通常不会将[{1}}作为容器的CMD运行,但您可以在RUN图片构建步骤中运行bundler

在任何情况下,以非root用户身份运行容器都不是一个坏主意。使用USER指令进行更改。

bundler