Docker build and test workflow with mandatory pre-push validation checklist to prevent CI/CD failures
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: docker-build-test
description: Docker build and test workflow with mandatory pre-push validation checklist to prevent CI/CD failures
---
# Docker Build & Test
Local Docker testing workflow to prevent CI/CD failures. **CRITICAL**: Always run `make validate` before pushing.
## Pre-Push Checklist (MANDATORY)
Before pushing ANY Docker-related changes:
- [ ] `make validate` passes completely
- [ ] No build errors or warnings
- [ ] Smoke tests pass
- [ ] Image sizes verified
- [ ] Clean validation from scratch
## Quick Start
```bash
# Complete validation (ALWAYS run before push)
make validate
# Build and test everything
make all
# Clean and rebuild
make clean && make validate
```
## Build Commands
```bash
# Build both images
make build
# Build individual images
make build-healthcheck
make build-pgbouncer
```
## Test Commands
```bash
# Test both images
make test
# Test individual images
make test-healthcheck
make test-pgbouncer
```
## Validation Pipeline
```bash
# 1. Complete validation (recommended)
make validate
# 2. Check for errors
make build 2>&1 | grep -i error
# 3. Verify functionality
make test
# 4. Check image sizes
make info
# 5. Clean validation
make clean && make validate
```
## Manual Docker Commands (Fallback)
```bash
# Build
docker build -f Dockerfile.healthcheck -t pgbouncer-healthcheck:latest .
docker build -f Dockerfile.pgbouncer -t pgbouncer:latest .
# Test
docker run --rm pgbouncer-healthcheck:latest /usr/local/bin/healthcheck-unified.py --help
docker run --rm pgbouncer:latest /usr/local/bin/pgbouncer --version
# Check sizes
docker images | grep -E "(pgbouncer-healthcheck|pgbouncer)"
```
## Troubleshooting
| Issue | Solution |
|-------|----------|
| Docker daemon not running | Start Docker Desktop |
| Permission denied | Verify Docker access: `docker info` |
| Build failures | Use `make debug` for verbose output |
| Disk space | Use `make clean-all` |
### Debug Commands
```bash
# Verbose debugging
make debug
# Check prerequisites
make check
# Build with no cache
docker build --no-cache -f Dockerfile.pgbouncer -t pgbouncer:debug .
# Check layers
docker history pgbouncer:latest
```
## Command Reference
| Command | Purpose |
|---------|---------|
| `make validate` | Complete validation pipeline |
| `make all` | Build and test everything |
| `make build` | Build both images |
| `make test` | Test both images |
| `make info` | Show image information |
| `make clean` | Remove local images |
| `make debug` | Build with verbose output |
| `make check` | Check prerequisites |
| `make push` | Push to ECR (requires AWS auth) |
## Key Principles
- ✅ **Simple and reliable** - standard Docker + Make workflow
- ✅ **No complex tooling** - just Docker + Make (built-in)
- ✅ **Easy debugging** - familiar Docker commands
- ✅ **CI/CD compatible** - same commands locally and in pipelines
No comments yet. Be the first to comment!