Skip to content

Commit dcf4d56

Browse files
authored
Merge pull request #21 from DataDog/chore/compose-and-healthchecks-fix
chore: make health checks gooder-er
2 parents 01b0a58 + 0b4ca66 commit dcf4d56

3 files changed

Lines changed: 15 additions & 15 deletions

File tree

.github/workflows/docker-compose-integration.yml

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,8 @@ jobs:
2323

2424
- name: Wait for services to be healthy
2525
run: |
26-
echo "Waiting for all services to be healthy..."
27-
# Wait for services with health checks to be healthy (4 services) and all services to be up
28-
timeout 300 bash -c 'until [ $(docker compose ps --format "{{.Health}}" | grep -c "healthy") -ge 4 ] && [ $(docker compose ps --format "{{.Status}}" | grep -c "Up") -ge 5 ]; do sleep 5; done'
26+
echo Pausing for 60s to allow services to start
27+
sleep 60
2928
docker compose ps
3029
3130
- name: Test dashboard endpoints
@@ -37,23 +36,19 @@ jobs:
3736
run: |
3837
# Test sticker award API with sample user data
3938
curl -f -X GET "http://localhost:8080/api/award/v1/users/user-001/stickers" || exit 1
40-
# TODO!
41-
# curl -f -X GET "http://localhost:8080/api/users/v1/health" || exit 1
39+
curl -f -X GET "http://localhost:8080/api/users/v1/health" || exit 1
4240
4341
- name: Show service logs on failure
4442
if: failure()
4543
run: |
4644
echo "=== Docker Compose Services Status ==="
4745
docker compose ps
48-
echo "=== Traefik Logs ==="
49-
docker compose logs traefik
50-
echo "=== Sticker Award Logs ==="
51-
docker compose logs sticker-award
52-
echo "=== User Management Logs ==="
53-
docker compose logs user-management
54-
echo "=== Database Logs ==="
55-
docker compose logs sticker-award-db
56-
docker compose logs user-management-db
46+
echo "=== All Service Logs ==="
47+
docker compose logs --tail=50
48+
echo "=== Health Check Details ==="
49+
docker compose ps --format "table {{.Name}}\t{{.Status}}\t{{.Health}}"
50+
echo "=== Resource Usage ==="
51+
docker stats --no-stream
5752
5853
- name: Cleanup
5954
if: always()

docker-compose.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,11 @@ services:
207207
QUARKUS_S3_AWS_CREDENTIALS_STATIC_PROVIDER_SECRET_ACCESS_KEY: minioadmin
208208
QUARKUS_S3_PATH_STYLE_ACCESS: "true"
209209
STICKER_IMAGES_BUCKET: sticker-images
210+
healthcheck:
211+
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
212+
interval: 10s
213+
timeout: 5s
214+
retries: 5
210215
labels:
211216
- "traefik.enable=true"
212217
- "traefik.http.routers.sticker-award.rule=PathPrefix(`/api/award`)"

user-management/src/Stickerlandia.UserManagement.Api/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ RUN dotnet restore src/Stickerlandia.UserManagement.Api/Stickerlandia.UserManage
1010
COPY . ./
1111

1212
# Publish the application
13-
RUN dotnet publish src/Stickerlandia.UserManagement.Api/Stickerlandia.UserManagement.Api.csproj -o out -c Release -r linux-arm64
13+
RUN dotnet publish src/Stickerlandia.UserManagement.Api/Stickerlandia.UserManagement.Api.csproj -o out -c Release
1414

1515
FROM mcr.microsoft.com/dotnet/aspnet:8.0-noble-chiseled AS runtime
1616
WORKDIR /App

0 commit comments

Comments
 (0)