debug(web): deeper diag of nginx entrypoint crash
Debug: Web container crash diag / Web Crash Diagnostics (push) Successful in 49s
Debug: Web container crash diag / Web Crash Diagnostics (push) Successful in 49s
This commit is contained in:
@@ -1,42 +1,39 @@
|
||||
#!/bin/bash
|
||||
set +e
|
||||
echo "=== docker ps all ==="
|
||||
docker ps -a --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" | head -20
|
||||
echo "=== web images present ==="
|
||||
docker images | grep -E "xiaoxia.*web" | head
|
||||
echo ""
|
||||
echo "=== web logs (last 80 lines) ==="
|
||||
WEB_CID=$(docker ps -aq --filter "name=xiaoxia-web-staging" | head -1)
|
||||
echo "WEB_CID=$WEB_CID"
|
||||
docker logs "$WEB_CID" 2>&1 | tail -80
|
||||
echo "=== check nginx base default.conf ==="
|
||||
BASE_IMG="git.xiaoxiajianji.com/xiaoxia/base/nginx:alpine"
|
||||
CID=$(docker create "$BASE_IMG" /bin/sh)
|
||||
echo "ephemeral cid=$CID"
|
||||
echo "--- conf.d contents ---"
|
||||
docker start "$CID" 2>/dev/null
|
||||
docker exec "$CID" ls -la /etc/nginx/conf.d/ 2>&1
|
||||
echo "--- default.conf type ---"
|
||||
docker exec "$CID" file /etc/nginx/conf.d/default.conf 2>&1
|
||||
docker exec "$CID" stat /etc/nginx/conf.d/default.conf 2>&1
|
||||
echo ""
|
||||
echo "=== web container inspect ==="
|
||||
docker inspect "$WEB_CID" --format 'Status={{.State.Status}} ExitCode={{.State.ExitCode}} Error={{.State.Error}} RestartCount={{.RestartCount}} StartedAt={{.State.StartedAt}} FinishedAt={{.State.FinishedAt}}'
|
||||
echo "=== test ln -sf on existing file ==="
|
||||
docker exec "$CID" sh -c "ln -sf /etc/nginx/nginx.conf /etc/nginx/conf.d/default.conf && echo ln_ok && ls -la /etc/nginx/conf.d/default.conf"
|
||||
docker rm -f "$CID" 2>/dev/null
|
||||
echo ""
|
||||
echo "=== nginx -t (try exec into running web, or start a new one) ==="
|
||||
if docker exec "$WEB_CID" nginx -t 2>&1; then
|
||||
echo "nginx config OK"
|
||||
else
|
||||
echo "nginx -t failed on running container (may be stopped)"
|
||||
IMG=$(docker inspect "$WEB_CID" --format '{{.Config.Image}}')
|
||||
echo "Image: $IMG"
|
||||
echo "=== try running nginx -t in ephemeral container ==="
|
||||
docker run --rm --entrypoint nginx "$IMG" -t 2>&1 | tail -20
|
||||
fi
|
||||
echo "=== check staging web image default.conf ==="
|
||||
STAGING_WEB=$(docker inspect xiaoxia-web-staging --format '{{.Config.Image}}' 2>/dev/null)
|
||||
echo "Staging web image: $STAGING_WEB"
|
||||
CID2=$(docker create "$STAGING_WEB" /bin/sh)
|
||||
echo "ephemeral cid=$CID2"
|
||||
echo "--- conf.d in built image (before entrypoint) ---"
|
||||
docker start "$CID2" 2>/dev/null || echo "(could not start, try without starting)"
|
||||
docker exec "$CID2" ls -la /etc/nginx/conf.d/ 2>&1
|
||||
echo "--- default.conf content head ---"
|
||||
docker exec "$CID2" head -5 /etc/nginx/conf.d/default.conf 2>&1
|
||||
docker exec "$CID2" file /etc/nginx/conf.d/default.conf 2>&1
|
||||
echo "--- docker-entrypoint.sh content ---"
|
||||
docker exec "$CID2" cat /docker-entrypoint.sh 2>&1
|
||||
echo ""
|
||||
echo "=== nginx conf.d files ==="
|
||||
docker exec "$WEB_CID" ls -la /etc/nginx/conf.d/ 2>&1 | head
|
||||
echo ""
|
||||
echo "=== nginx.conf head ==="
|
||||
docker exec "$WEB_CID" head -50 /etc/nginx/nginx.conf 2>&1 | head -60
|
||||
echo ""
|
||||
echo "=== default.conf head ==="
|
||||
docker exec "$WEB_CID" cat /etc/nginx/conf.d/default.conf 2>&1 | head -40
|
||||
echo ""
|
||||
echo "=== entrypoint / docker CMD ==="
|
||||
docker inspect "$WEB_CID" --format 'Entrypoint={{.Config.Entrypoint}} Cmd={{.Config.Cmd}}'
|
||||
echo ""
|
||||
echo "=== web health endpoint (via docker exec curl) ==="
|
||||
docker exec "$WEB_CID" wget -qO- http://localhost:80/ 2>&1 | head -20 || \
|
||||
docker exec "$WEB_CID" curl -sS http://localhost:80/ 2>&1 | head -20 || \
|
||||
echo "no curl/wget in container"
|
||||
echo "=== try running entrypoint manually ==="
|
||||
docker exec -e APP_ENV=staging "$CID2" sh -x /docker-entrypoint.sh 2>&1 | head -30
|
||||
docker rm -f "$CID2" 2>/dev/null
|
||||
echo ""
|
||||
echo "=== Done ==="
|
||||
|
||||
Reference in New Issue
Block a user