Пытаюсь настроить проверку работоспособности в рабочих процессах Github.
Контейнер jboss/keycloak:12.0.4
.
Рабочий процесс таков:
jobs:
test:
name: Test
runs-on: ubuntu-latest
services:
keycloak:
image: jboss/keycloak:12.0.4
options: --name keycloak
steps:
...
Контейнеру нужно около 30-40 секунд, чтобы стать здоровым. Я пробовал два подхода без успеха.
- Варианты услуг:
options: --health-cmd curl "http://localhost:8080/auth/realms/master" --health-interval 30s
Это работало локально, но в рабочем процессе кажется, что Github дает сбой до того, как докер завершил проверку работоспособности. Независимо от того, какие значения я установил для health-interval
, Github пытается 4 раза (не в том интервале, который я пропустил), а затем терпит неудачу.
- Взломайте шаг проверки работоспособности:
steps:
- name: Healthcheck
continue-on-error: true
run: |
echo "HEALTHCHECK, BECAUSE"
docker exec keycloak curl -s --fail "http://localhost:8080/auth/realms/master" 1>/dev/null
while [ "$?" != "0" ]; do
docker exec keycloak curl -s --fail "http://localhost:8080/auth/realms/master" 1>/dev/null
sleep 10s
done
Это выглядит плохо и тоже не работает. Шаг установлен как continue-on-error
, но это не означает, что сам шаг идет дальше первого оператора docker exec
.
Итак, есть идеи, как это решить?