Claude-skill-registry docker-build-test

Docker build and test workflow with mandatory pre-push validation checklist to prevent CI/CD failures

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/docker-build-test" ~/.claude/skills/majiayu000-claude-skill-registry-docker-build-test && rm -rf "$T"
manifest: skills/data/docker-build-test/SKILL.md
source content

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

# Complete validation (ALWAYS run before push)
make validate

# Build and test everything
make all

# Clean and rebuild
make clean && make validate

Build Commands

# Build both images
make build

# Build individual images
make build-healthcheck
make build-pgbouncer

Test Commands

# Test both images
make test

# Test individual images
make test-healthcheck
make test-pgbouncer

Validation Pipeline

# 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)

# 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

IssueSolution
Docker daemon not runningStart Docker Desktop
Permission deniedVerify Docker access:
docker info
Build failuresUse
make debug
for verbose output
Disk spaceUse
make clean-all

Debug Commands

# 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

CommandPurpose
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