Какая команда обновляет только образ Docker?

Какая команда обновляет только Docker-образ?

/var/discourse# ./launcher -h
Usage: launcher COMMAND CONFIG [--skip-prereqs] [--docker-args STRING]
Commands:
    start:       Start/initialize a container
    stop:        Stop a running container
    restart:     Restart a container
    destroy:     Stop and remove a container
    enter:       Open a shell to run commands inside the container
    logs:        View the Docker logs for a container
    bootstrap:   Bootstrap a container for the config based on a template
    run:         Run the given command with the config in the context of the last bootstrapped image
    rebuild:     Rebuild a container (destroy old, bootstrap, start new)
    cleanup:     Remove all containers that have stopped for > 24 hours
    start-cmd:   Generate docker command used to start container

Options:
    --skip-prereqs             Don't check launcher prerequisites
    --docker-args              Extra arguments to pass when running docker
    --skip-mac-address         Don't assign a mac address
    --run-image                Override the image used for running the container

Моя ситуация следующая:
Сейчас при сборке, если нужно обновить Docker-образ, а сеть на сервере очень плохая, процесс может зависнуть на этапе обновления образа надолго. Было бы здорово иметь отдельную команду именно для обновления Docker-образа. Тогда я мог бы заранее и отдельно обновить образ, а потом спокойно собирать код. Например:

./launcher pull-docker

Я знаю, что могу вручную собрать рабочий вариант, но я всё же надеюсь, что официальные разработчики добавят такую команду.

хм, единственный способ, который я знаю, — это сначала обновить скрипт лаунчера:

cd /var/discourse
git pull

затем найти тег изображения по умолчанию, который использует лаунчер:

grep -m1 '^image=' launcher

вывод должен выглядеть примерно так:

image="discourse/base:2.0.20260915-0028"

затем выполните:

docker pull discourse/base:2.0.20260915-0028

и тогда, когда вы запустите ./launcher rebuild app, я думаю, что загрузка будет пропущена.

Спасибо за ответ. Я сейчас обновляю таким же способом, но это довольно хлопотно. Хотел написать автоматизированный скрипт, но боюсь, что после официального обновления он может стать несовместимым.

Вы можете сделать это с помощью исполняемого bash-скрипта и даже использовать cron-задачу для автоматизации. Не уверен, почему он вдруг станет несовместимым в ближайшее время.

Я имел в виду, что в будущем это может стать несовместимым, и мне, возможно, придётся каждый раз проверять этот скрипт. Это, безусловно, добавляет лишней работы. Я просто рассматриваю худший сценарий :joy:. Конечно, если говорить о решении проблемы, то лучше сначала начать действовать, а потом подстраиваться по ходу дела.