Какие хорошие стратегии для обновления docker сервисных образов или базовых образов Dockerfile - PullRequest
0 голосов
/ 09 апреля 2020

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

Какие стратегии или подходы используются людьми, чтобы убедиться, что они используют более новые базовые изображения для подачи своих утверждений Dockerfile FROM или для сервисов, которые зависят от изображений с обновлениями (но с одним и тем же тегом)

Я знаю, что kubernetes имеет оператор pull_policy , но что является эквивалентной мягкой опцией для docker, рой или docker -compose.

В качестве примера мы используем tiangolo / uwsgi- nginx - flask: python3 .6 в качестве основы для Flask приложений. Время от времени этот образ обновляется, и поэтому базовая ОС, python, nginx, flask и другие зависимости все получают обновления, но мы всегда используем один и тот же тег изображения.

docker -compose не имеет встроенного метода для обработки обновления базовых изображений во время сборки, поэтому мы просто делаем следующее в сценарии перед сборкой, чтобы принудительно извлекать новые изображения :

find codebase -name "Dockerfile" | while read line; do cat $line | awk '/FROM/ {print $2}' | xargs docker pull

Это нормально, но у нас нет реального способа управления этим процессом обновления.

Есть ли лучший способ?

1 Ответ

1 голос
/ 11 апреля 2020

Docker compose будет использовать текущее изображение из локального кэша изображений для базового изображения, если только сборка не запускается явно с использованием docker-compose build --pull.

Если вы однажды решите разделить сборку и жизненный цикл запуска, docker build --pull обеспечивает такое же поведение.

...