diff --git a/check.sh b/check.sh index 4d2b039..09638ed 100755 --- a/check.sh +++ b/check.sh @@ -30,25 +30,46 @@ run_go_check() { fi } +load_env() { + if [ -f .env ]; then + set -a + # shellcheck disable=SC1091 + . ./.env + set +a + fi +} + post_start_check() { echo "=== Проверка после запуска ===" + load_env host_docker_check echo "" - if docker compose ps 2>/dev/null | grep -qE 'shop-app|running'; then - if docker compose exec -T app wget -qO- http://127.0.0.1:8080/health 2>/dev/null; then - echo "" - echo " ✓ app /health: OK" - fi - elif command -v curl >/dev/null 2>&1; then - if curl -sf "http://127.0.0.1:${HTTP_PORT:-80}/health" 2>/dev/null; then - echo "" - echo " ✓ /health: OK" + + if docker compose ps postgres 2>/dev/null | grep -qi running; then + if docker compose exec -T postgres pg_isready -U "${POSTGRES_USER:-shop}" -d "${POSTGRES_DB:-shopdb}" >/dev/null 2>&1; then + echo " ✓ postgresql: готова" else - echo " ✗ /health: сервис не отвечает — проверьте: docker compose ps" + echo " ✗ postgresql: не отвечает" exit 1 fi + else + echo " ✗ postgres: контейнер не запущен — docker compose up -d" + exit 1 fi - CHECK_SKIP_DB=0 CHECK_HOST_TOOLS=1 run_go_check + + if command -v curl >/dev/null 2>&1; then + if curl -sf "http://127.0.0.1:${HTTP_PORT:-80}/health" >/dev/null 2>&1; then + echo " ✓ /health: OK" + else + echo " ✗ /health: не отвечает — docker compose logs app caddy" + exit 1 + fi + elif docker compose exec -T app wget -qO- http://127.0.0.1:8080/health >/dev/null 2>&1; then + echo " ✓ app /health: OK" + fi + + echo "" + CHECK_SKIP_DB=1 CHECK_HOST_TOOLS=1 run_go_check } case "$MODE" in