Указание версии комплекта - PullRequest
0 голосов
/ 30 августа 2018

Я создаю веб-сайт, используя пакет, и я создаю его через контейнеры 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 исправляет проблему для меня локально, но не в образе докера. Поэтому я запустил which -a bundle, и он дал мне два каталога: /usr/bin и /usr/local/bin. Кажется, новый пакет установлен на local/bin, и когда я запускаю bundle install, он не ищет local/bin, поэтому выдает предупреждение.

Что было бы лучшим способом преодолеть это? Просто имейте в виду, что это должно быть автоматизировано.

1 Ответ

0 голосов
/ 30 августа 2018

Если я правильно понял, вы хотите только самую новую версию, предоставленную 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
...