Dockerfile — Как Закрепить Версии Пакета Ос В Образе Docker

  • Автор темы Ars1
  • Обновлено
  • 22, Oct 2024
  • #1

Сценарий

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

 COPY 
we always enforce the OS package manager to install a specific version of a package. For example:

nginx=1.6.2-5+deb8u6

Вот почему в нашем

Проблема FROM node:6.10.0 RUN apt-get update \ && apt-get -y install nginx=1.6.2-5+deb8u6 \ && apt-get -y install supervisor=3.0r1-1+deb8u1 package is now invalid.

Восходящий репозиторий изменился, и

Я не уверен, что привело к этому изменению, но я думаю, что это как-то связано с выходом дистрибутивов из цикла поддержки или с тем, что старые пакеты удалены/перенесены куда-то еще.

Вопрос

Как мне определить точную версию пакетов на уровне ОС, не столкнувшись с этой проблемой?Примечание

  1. : Я знаю, что эти два варианта подойдут, но я хочу знать, есть ли более простой выход:
  2. Создайте собственное базовое изображение Dockerfile them into the Docker image

Загрузите двоичные файлы и

Ars1


Рег
26 Aug, 2004

Тем
74

Постов
194

Баллов
584
  • 25, Oct 2024
  • #2

Я не уверен, что это можно назвать «более простым» способом, но вы можете разместить определенные пакеты на сервере (например, Артефабрика, S3). Затем вам нужно будет подключить Dockerfile к этому местоположению и использовать пакеты оттуда.

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

 

Mylutsk


Рег
20 Aug, 2008

Тем
67

Постов
184

Баллов
539
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно