首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指定包的版本

指定包的版本
EN

Stack Overflow用户
提问于 2018-08-30 21:51:20
回答 1查看 32关注 0票数 1

我正在使用bundle构建一个网站,我通过docker容器来构建它。显然,当我安装ruby-bundler时,我得到的是bundler 1.15.1而不是1.16.4,并且它会抛出一个警告:我的bundler已经过时了。这导致了一些im试图更新的文件的其他问题。

这是我的Dockerfile:

代码语言:javascript
复制
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,因此它会向我抛出警告。

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

EN

回答 1

Stack Overflow用户

发布于 2018-08-31 00:17:37

如果我没记错的话,您只需要gem install bundler提供的最新版本。

在这种情况下,您所需要做的就是从apt-get安装中删除ruby-bundler,剩下的就是这个最终的Dockerfile文件

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52098756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档