Как мне создать среду Linux, в которой указаны определенные версии пакетов?

Я создаю файл dockerfile, который запускает пользовательское приложение, привязанное к определенной версии Java.

Я использую базовый образ centos7, потому что это то, о чем я говорил в статье, и потому что мне нужно что-то использовать, так что это ничуть не хуже других. Честно говоря, мне все равно, какой пользовательский мир я использую. Смысл этого образа - в размещаемом программном обеспечении, а сам дистрибутив Linux - всего лишь средство для достижения цели - что важно, JDK не будет использоваться другими приложениями или пользователями.

Как было сказано, мое приложение привязано к конкретной версии Java, которую я использую - любое обновление версии Java потребует полного регрессионного тестирования программного обеспечения с этим конкретную версию перед ее выпуском.

Статья, за которой я следил, началась с соответствующих частей установки JDK файла докеров, которые выглядели следующим образом:

FROM centos:centos7
RUN yum makecache \
    && yum update -y \
    && yum install -y \
    java-1.8.0-openjdk-devel \
    && yum clean all

Это недостаточно конкретно, каждый раз, когда образы собираются, они получат случайную версию Java , а это не то, что я хочу, мне нужна конкретная версия Java.

Я изменил файл докера, чтобы он выглядел следующим образом:

FROM centos:centos7
RUN yum makecache \
    && yum update -y \
    && yum install -y \
    java-1.8.0-openjdk-devel-1.8.0.65-3.b17.el7 \
    && yum clean all

И образ докера строился нормально. Это было в декабре.

На этой неделе мне нужно было внести небольшое изменение в другую часть программного обеспечения и пересобрать новую версию образа, но сборка образа теперь не выполняется.

Как это делают другие люди? Есть ли другой способ установки JDK, чтобы я мог иметь последнюю версию дистрибутива ОС с последними обновлениями (как определено базовым образом в предложении FROM и обновлении yum), но установить определенную версию JDK?

Есть ли версия Linux, более подходящая для такого рода требований (я не привязан к CentOS, пользовательский дистрибутив Linux для меня не особенно важен)?

9
задан 18 February 2016 в 02:26
1 ответ

Похоже, он видит нужный вам пакет, но по какой-то причине выполняется установка из репозитория обновлений.

Вы можете отключить репозиторий обновлений в своей команде yum;

yum install -y $package --disablerepo=updates
2
ответ дан 2 December 2019 в 22:37

Теги

Похожие вопросы