Docker build and test workflow with mandatory pre-push validation checklist
Scanned 9/20/2026
Install to Claude Code
npx -y skills add tstapler/dotfiles --skill docker-build-test --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Docker Build Test?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/tstapler-docker-build-test)More formats (shields.io, HTML) on the badges page.
---
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 pipelinesIs this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!