3.1 KiB
3.1 KiB
Docker Quick Reference
🚀 Quick Start
# Build and run (one command)
docker build -t argparse-builder . && docker run -d -p 8080:8080 argparse-builder
# Or with docker-compose
docker-compose up -d
📦 Files Included
Dockerfile ← Production (scratch-based, ~7MB)
Dockerfile.alpine ← Development (Alpine, ~15MB)
docker-compose.yml ← Easy deployment
.dockerignore ← Build optimization
k8s-deployment.yaml ← Kubernetes manifest
DOCKER_GUIDE.md ← Complete documentation
Makefile.docker ← Build automation
main_enhancements.go ← Health check & config code
🔨 Build Options
# Production (minimal)
docker build -t argparse-builder .
# Development (with shell)
docker build -f Dockerfile.alpine -t argparse-builder:alpine .
# Multi-platform
docker buildx build --platform linux/amd64,linux/arm64 -t argparse-builder .
▶️ Run Options
# Basic
docker run -d -p 8080:8080 argparse-builder
# With limits
docker run -d -p 8080:8080 --memory=128m --cpus=0.5 argparse-builder
# Secure
docker run -d -p 8080:8080 --read-only --cap-drop=ALL argparse-builder
🎯 Image Sizes
Image | Size | Use |
---|---|---|
scratch | ~7 MB | Production |
alpine | ~15 MB | Development |
no-opt | ~900 MB | ❌ Don't use |
🔍 Health Check
# Check health
curl http://localhost:8080/health
# Docker health status
docker ps --filter "health=healthy"
📊 Monitoring
# Logs
docker logs -f argparse-builder
# Stats
docker stats argparse-builder
# Inspect
docker inspect argparse-builder
🎪 Kubernetes
# Deploy
kubectl apply -f k8s-deployment.yaml
# Check status
kubectl get pods -n argparse-builder
kubectl get svc -n argparse-builder
# Logs
kubectl logs -f deployment/argparse-builder -n argparse-builder
🛠️ Makefile Commands
make docker-build # Build image
make docker-run # Run container
make docker-logs # View logs
make compose-up # Start with compose
make clean # Clean everything
🔒 Security Features
- Non-root user (UID 65534)
- Read-only filesystem
- No capabilities
- Static binary
- Minimal attack surface
📝 Key Points
✅ Dockerfile uses multi-stage build (builder + scratch) ✅ Healthcheck endpoint at /health ✅ Environment vars: PORT, LOG_LEVEL ✅ Graceful shutdown support ✅ Resource limits configured ✅ Security hardened by default
🌐 Registry Push
# GitHub Container Registry
docker tag argparse-builder ghcr.io/username/argparse-builder
docker push ghcr.io/username/argparse-builder
# Docker Hub
docker tag argparse-builder username/argparse-builder
docker push username/argparse-builder
🔄 CI/CD Ready
GitHub Actions example included in DOCKER_GUIDE.md for:
- Automated builds on push
- Multi-platform support
- Registry push
- Cache optimization
See DOCKER_GUIDE.md for complete instructions.