2

При установке apk на alpine можно указать версию, например apk add ffmpeg=3.0.7-r0 . В контейнерах это типичный сценарий, потому что вы хотите что-то неизменное, поэтому вы добавляете в файл Docker:

RUN apk add --no-cache ffmpeg=3.0.4-r1

проблема в том, что через некоторое время вы можете (будете) получить ошибку примерно так:

ERROR: unsatisfiable constraints:
  ffmpeg-3-0.7.0-r0:
    breaks: world[ffmpeg=3.0.4-r1]

Поэтому необходимо изменить версию и переустановить пакет. Я читал, что устанавливать ограничения версий небезопасно, так как версию можно удалить из репозитория, совет не указывать версию и "пусть apk обрабатывает ее" - для меня это действительно странно, может быть, я чего-то не понял , Если удалить версию, то вы на самом деле не неизменны, и вещи, которые могут отличаться на разных машинах, в конечном итоге получают ошибки.

Какова стратегия получения неизменяемой версии контейнера с установленными такими пакетами?

1 ответ1

0

Это невозможно при использовании apk, но сборка программ из исходного кода позволяет определить конкретную версию. Оформить официальные изображения nodejs для примеров. Они собираются из исходного кода для поддержки определенных версий nodejs.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .