feat: leverage healthcheck for container status
This commit is contained in:
@@ -106,9 +106,53 @@ jobs:
|
||||
- name: Launch Blog Deployment
|
||||
run: |
|
||||
cd /blog
|
||||
docker compose down ${CONTAINER_NAME}
|
||||
|
||||
echo "- Stopping existing ${CONTAINER_NAME}..."
|
||||
docker compose down ${CONTAINER_NAME}
|
||||
|
||||
echo "- Starting ${CONTAINER_NAME}..."
|
||||
docker compose up -d ${CONTAINER_NAME}
|
||||
sleep 30
|
||||
|
||||
echo "- Waiting for ${CONTAINER_NAME} to become healthy..."
|
||||
|
||||
timeout=300
|
||||
elapsed=0
|
||||
|
||||
while true; do
|
||||
status=$(docker inspect \
|
||||
--format='{{.State.Health.Status}}' \
|
||||
${CONTAINER_NAME})
|
||||
|
||||
echo "Health status: ${status}"
|
||||
|
||||
case "$status" in
|
||||
healthy)
|
||||
echo "✅ ${CONTAINER_NAME} is healthy"
|
||||
break
|
||||
;;
|
||||
|
||||
unhealthy)
|
||||
echo "❌ ${CONTAINER_NAME} is unhealthy"
|
||||
echo "- Displaying container logs"
|
||||
docker compose logs ${CONTAINER_NAME}
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$elapsed" -ge "$timeout" ]; then
|
||||
echo "❌ Timed out waiting for ${CONTAINER_NAME}"
|
||||
echo "- Displaying container logs"
|
||||
docker compose logs ${CONTAINER_NAME}
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sleep 2
|
||||
elapsed=$((elapsed + 2))
|
||||
done
|
||||
|
||||
echo "- Displaying container logs"
|
||||
docker compose logs ${CONTAINER_NAME}
|
||||
|
||||
@@ -161,9 +205,53 @@ jobs:
|
||||
- name: Launch Blog Deployment
|
||||
run: |
|
||||
cd /blog
|
||||
docker compose down ${CONTAINER_NAME}
|
||||
|
||||
echo "- Stopping existing ${CONTAINER_NAME}..."
|
||||
docker compose down ${CONTAINER_NAME}
|
||||
|
||||
echo "- Starting ${CONTAINER_NAME}..."
|
||||
docker compose up -d ${CONTAINER_NAME}
|
||||
sleep 30
|
||||
|
||||
echo "- Waiting for ${CONTAINER_NAME} to become healthy..."
|
||||
|
||||
timeout=300
|
||||
elapsed=0
|
||||
|
||||
while true; do
|
||||
status=$(docker inspect \
|
||||
--format='{{.State.Health.Status}}' \
|
||||
${CONTAINER_NAME})
|
||||
|
||||
echo "Health status: ${status}"
|
||||
|
||||
case "$status" in
|
||||
healthy)
|
||||
echo "✅ ${CONTAINER_NAME} is healthy"
|
||||
break
|
||||
;;
|
||||
|
||||
unhealthy)
|
||||
echo "❌ ${CONTAINER_NAME} is unhealthy"
|
||||
echo "- Displaying container logs"
|
||||
docker compose logs ${CONTAINER_NAME}
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$elapsed" -ge "$timeout" ]; then
|
||||
echo "❌ Timed out waiting for ${CONTAINER_NAME}"
|
||||
echo "- Displaying container logs"
|
||||
docker compose logs ${CONTAINER_NAME}
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sleep 2
|
||||
elapsed=$((elapsed + 2))
|
||||
done
|
||||
|
||||
echo "- Displaying container logs"
|
||||
docker compose logs ${CONTAINER_NAME}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user