@XTGH

Как сделать readinessProbe по тексту файла?

Программа пишет логи в файл, как можно сделать проверку готовности по наличию записи в файле?
Например я пытаюсь использовать grep, но под не стартует. Кусок деплоймента:
readinessProbe:
          exec:
           command:
           - cat
           - /app/log | grep -q "app start"
  • Вопрос задан
  • 74 просмотра
Решения вопроса 2
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
вам не нужен cat и ненужный pipe - просто
grep -q "app start" /app/log

Но вы уверены, что это нормально - просматриивать целый лог файл каждую итерацию рединесс пробы?
Может быть все-таки лучше в программу добавить дополнительный ендпоинт и проверять ее через http пробу?
Ответ написан
@MadridianFox
Web-программист, многостаночник
Как уже написали в соседнем ответе вы можете обойтись одним только grep, однако ваша ошибка в другом.
Во-первых, вы используете возможности shell, там где его нет. Пайп это специальная команда, которая есть в sh и bash. А хелсчек exec вызывает программы напрямую.
Во-вторых, command это массив аргументов запуска. Каждая опция, каждый аргумент должен быть отдельным элементом массива, а вы просто дописали всё во второй элемент и оно распознаётся как один большой аргумент cat.

Делайте греп и помещайте каждую опцию в отдельный элемент списка.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы