Skip to main content
Как правило, при каждом запуске bin/up using-the-toolkit автоматически обновляет наш образ TeX Live full. Чтобы не обновлять его вручную, можно автоматизировать обновление образа TeX Live для изолированной компиляции с помощью приведённого ниже скрипта. Добавьте его в качестве задания cron, убедившись, что у пользователя cron есть права на запуск docker. Выполните crontab -e и добавьте в конец следующую строку.
crontab -e
flock -n пропускает запуск, пока предыдущий ещё удерживает блокировку, поэтому медленные загрузки никогда не накапливаются.
/usr/local/bin/pull-texlive.sh
Почему ежечасная ротация, а не загрузка всего сразу: тег вычисляется по системным часам (количество часов с начала эпохи по модулю числа тегов), поэтому задание не хранит состояние — нигде не записывается, «на чём мы остановились», а цикл сам выравнивается после перезагрузки или пропущенного часа. Каждый запуск затрагивает один тег; если дайджест в реестре не изменился, загрузка сводится к проверке манифеста (Image is up to date) и завершается за секунды. Реальное обновление загружает не более одного образа в час с ограничением timeout 50m, а docker image prune -f удаляет слои, оставшиеся без ссылок после перемещения тега. Чтобы убедиться, что синхронизация работает корректно:
Когда выходит новый выпуск TeX Live, добавьте его тег в массив TAGS — длина цикла ротации подстроится автоматически. Часы, когда хост выключен, пропускаются, а не ставятся в очередь; затронутые теги просто обновятся в свою следующую очередь.
Последнее изменение 4 октября 2026 г.