Іншим підходом може бути припущення, що базове зображення затримується досить швидко (і це дуже ймовірно, що станеться), а також примушувати періодично (наприклад, щотижня) створювати інше зображення програми, а потім повторно розгортати його, якщо воно змінилося.
Наскільки я можу сказати, популярні базові зображення, такі як офіційний Debian або Java, оновлюють свої теги, щоб забезпечити виправлення безпеки, тому теги не є незмінними (якщо ви хочете отримати більш гарантію того, що вам потрібно використовувати посилання [image: @digest ], доступний у більш пізніх версіях Docker). Тому, якщо ви збиралися створити своє зображення docker build --pull
, то ваша програма повинна отримати найновіший і найкращий тег базового зображення, на який ви посилаєтесь.
Оскільки змінні теги можуть бути заплутаними, найкраще збільшувати номер версії вашої програми щоразу, коли ви робите це, щоб, принаймні, на вашій стороні речі були чистішими.
Тому я не впевнений, що сценарій, запропонований в одній з попередніх відповідей, справляється з цим завданням, оскільки він не відновлює зображення програми - він просто оновлює тег базового зображення, а потім перезавантажує контейнер, але новий контейнер все ще посилається старий хеш базового зображення
Я б не виступав за запуск завдань типу cron в контейнерах (або будь-яких інших процесах, якщо це дійсно не потрібно), оскільки це суперечить мантрі виконання лише одного процесу в контейнері (є різні аргументи, чому це краще, тому я ' м. сюди не збиратись).