Запустите apt-get upgrade -s в контейнере и ожидайте того же результата, что и при запуске на хосте

Я хотел бы подготовить среду для контейнера Docker таким образом, чтобы при выполнении apt-get upgrade -s внутри контейнера результат был таким же, как если бы команда была запущена снаружи на хосте. Это сделано в контексте и в процессе подготовки к добавлению сборщика текста apt.sh в существующий модуль экспорта узлов Prometheus . Я уже использую Kubernetes DaemonSet для управления такими контейнерами (подами) способом, подобным примеру из GitHub prometheus-community / node-exporter-textfile-collector-scripts . 12285] Судя по странице руководства, apt-get работает с файлами в / etc / apt , / var / cache / apt и / var / lib / apt , и поэтому мой контейнер монтирует их с хоста только для чтения. В настоящее время мой хост и контейнер работают под Debian 9 (Stretch) и Debian 10 (Buster) соответственно. Я объясняю это, выполняя apt-get upgrade -s вне контейнера и apt-get upgrade -s -t stretch внутри.

Однако два запуска по-прежнему дают разные результаты . Что мне не хватает?

0
задан 21 September 2019 в 21:00
1 ответ

Официальная документация Docker:

APT-GET
Probably the most common use-case for RUN is an application of apt-get. Because it installs packages, the RUN apt-get command has several gotchas to look out for.

Avoid RUN apt-get upgrade and dist-upgrade, as many of the “essential” packages from the parent images cannot upgrade inside an unprivileged container.

If a package contained in the parent image is out-of-date, contact its maintainers. 
1
ответ дан 4 December 2019 в 15:37

Теги

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