Q: Your CI pipeline runs unit tests inside a Docker build using a multi-stage Dockerfile. If the tests fail, you want to extract the test report (JUnit XML) from the failed build stage. But `docker build` exits with an error and produces no final image. How do you get the test report out?
Use the --target flag to build only up to the test stage, and structure the Dockerfile so the test report is generated before the asserti...
#Docker #Must enable BuildKit #L2 #Containers #Linux
🎙️ Candidate Opening & Architectural Context
""During an image optimization initiative across our services, we solved this exact problem. The interviewer is testing: Multi-stage build targets, `--target` flag.. I structure my answer around systematic triage first, root cause analysis second, and permanent remediation third.""
Advertisement
🛠️ Production Runbook & Step-by-Step Resolution
1️⃣
Production Solution & Architecture
Use the --target flag to build only up to the test stage, and structure the Dockerfile so the test report is generated *before* the assertion that causes the build to fail: Build with: docker build --target test -o type=local,dest=./output . using BuildKit's --output flag. Even if the full build fails, you can separately export just the test stage output. Alternatively, use docker create on the test target image and docker cp the report out.
FROM golang:1.21 AS test
COPY . .
RUN go test -v ./... -count=1 2>&1 | go-junit-report > /report.xml; \
go test ./... -count=1
FROM alpine AS runtime
COPY --from=test /app/binary /app/binary
💡 The Senior SRE Gold Nugget (Key Architectural Takeaway)
"Pro-Tip: Use the --target flag to build only up to the test stage, and structure the Dockerfile so the test report is generated *before* th."
⚡ 60-Second Elevator Pitch Talking Points
- Immediate Triage: Use the --target flag to build only up to the test stage, and structure the Dockerfile so the t
- Run targeted verification commands before modifying configuration.
- Automate permanent guardrails (CI check, alerts, IaC policy) to prevent recurrence.
Advertisement