Удаление образа Docker при пересборке приложения

Можно ли использовать команду удаления контейнера Docker при пересборке приложения в файле app.yml или файле запуска?

docker image prune -a --force

или

./launcher cleanup

Если у вас есть какие-либо идеи по этому поводу, пожалуйста, ответьте на этот вопрос.

Заранее спасибо :grinning:

Сначала вы можете выполнить ./launcher cleanup app, чтобы удалить все остановленные контейнеры.

Обычно это делают перед пересборкой, пока последний контейнер еще запущен.

Привет, @merefield

Эти команды работают у меня: ./launcher cleanup app, но я на самом деле добавляю их в файл app.yml или файлы лаунчера.

Я использую только одну команду: ./launcher rebuild app. Могу ли я поместить эти команды в указанные выше файлы?

Тот факт, что это никогда не рекомендуется, заставляет меня думать, что запуск этой команды во время пересборки может не сработать или быть небезопасным.

Можете попробовать запустить их последовательно в bash-скрипте?

Вы могли бы попробовать запустить их последовательно в bash-скрипте?

Я уже создал пользовательский bash-скрипт для пересборки приложения, а после завершения пересборки удалил неиспользуемые образы Docker из контейнера Discourse.

Однако меня интересует, можно ли добавить эти команды в файл app.yml или файл запуска.

Я пробовал их на тестовом сайте, но столкнулся с проблемой в файле запуска. Хотя команды работают у меня, их использование приводит к удалению всех образов.
docker image prune -a --force

Чтобы решить эту проблему, я добавил фильтр для последних 24 часов в команду:
docker image prune -a --force --filter "until=240h", и это решение работает для меня.

Какую проблему вы пытаетесь решить? У вас слишком мало места на диске для сборки контейнера без удаления старого? Это опасно, так как если что-то пойдет не так, вы останетесь без работы.

Вы не можете сделать это через лаунчер, поскольку эти команды выполняются внутри контейнера. Вы можете сделать это в shell-скрипте, который выполнит это и запустит лаунчер.