Простым решением было бы обновить специальную таблицу (скажем, status
), когда загрузка будет завершена. Затем замените команду проверки работоспособности сценарием bash
#!/usr/bin/env bash
# the table status is updated when the load finishes
SQLSTMT="SELECT status FROM myDatabase.status WHERE status='done'"
# execute the SQL script and get the result
STATUS=`mysql -AN -e "${SQLSTMT}"`
# return exit code 0 (container healthy) if status is done,
# otherwise exit code 1 (container is not healthy)
[ "$STATUS" == 'done' ]
health-cmd
становится:
--health-cmd='/path/to/script.sh'
Это должно работать, даже если вы создадите таблицу после завершения процесса загрузки.
Другой вариант - создать новый файл (даже пустой) после завершения загрузки. Команда работоспособности проверит наличие файла:
--health-cmd="/usr/bin/test -f /path/to/file"