【问题标题】:Specifying the version of bundle指定捆绑包的版本
【发布时间】:2018-08-30 13:51:19
【问题描述】:

我正在使用 bundle 构建一个网站,并通过 docker 容器构建它。显然,当我安装 ruby​​-bundler 时,它给了我捆绑器 1.15.1 而不是 1.16.4,它会发出警告说我的捆绑器已过时。这导致我尝试更新的某些文件出现其他一些问题。

这是我的 Dockerfile:

FROM ubuntu:17.10

RUN apt-get update && apt-get install -y \
git \
gcc \
make \
ruby \
ruby-dev \
locales \
ruby-bundler \
zlib1g-dev \
curl
RUN gem install bundler 
RUN rm -rf /var/lib/apt/lists/*

# Add support for UTF-8.
RUN localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8

RUN gem install bundler 行在本地为我解决了这个问题,但不是在 docker 映像上。所以我运行which -a bundle,它给了我两个目录:/usr/bin/usr/local/bin。新的捆绑器似乎安装在local/bin 上,当我运行bundle install 时,它不会寻找local/bin,因此它会向我发出警告。

克服这个问题的最佳方法是什么?请记住,它必须是自动化的。

【问题讨论】:

    标签: docker rubygems bundle bundler


    【解决方案1】:

    如果我理解正确,您只需要gem install bundler提供的最新版本

    在这种情况下,您只需将 ruby-bundler 从 apt-get 安装中删除,并保留在最终的 Dockerfile 中

    FROM ubuntu:17.10
    
    RUN apt-get update && apt-get install -y \
    git \
    gcc \
    make \
    ruby \
    ruby-dev \
    locales \
    zlib1g-dev \
    curl
    RUN gem install bundler 
    RUN rm -rf /var/lib/apt/lists/*
    
    # Add support for UTF-8.
    RUN localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
    ENV LANG en_US.utf8
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-29
      • 2015-01-18
      • 1970-01-01
      • 2013-08-25
      • 2015-08-11
      • 2014-11-20
      • 1970-01-01
      相关资源
      最近更新 更多