Files
gh-henkisdabro-wookstar-cla…/commands/containerize.md
2025-11-29 18:32:48 +08:00

4.0 KiB

allowed-tools: Read, Write, Edit, Bash argument-hint: [application-type] | --node | --python | --java | --go | --multi-stage description: Containerize application with optimized Docker configuration, security, and multi-stage builds model: claude-sonnet-4-5

Application Containerization

Containerize application for deployment: $ARGUMENTS

Current Application Analysis

  • Application type: @package.json or @setup.py or @go.mod or @pom.xml (detect runtime)
  • Existing Docker: @Dockerfile or @docker-compose.yml or @compose.yaml (if exists)
  • Dependencies: !find . -name "requirements.txt" -o -name "package*.json" -o -name "go.mod" | head -3
  • Port configuration: !grep -r "PORT|listen|bind" src/ 2>/dev/null | head -3 || echo "Port detection needed"
  • Build tools: @Makefile or build scripts detection

Task

Implement production-ready containerization strategy:

  1. Application Analysis and Containerization Strategy

    • Analyze application architecture and runtime requirements
    • Identify application dependencies and external services
    • Determine optimal base image and runtime environment
    • Plan multi-stage build strategy for optimization
    • Assess security requirements and compliance needs
  2. Dockerfile Creation and Optimization

    • Create comprehensive Dockerfile with multi-stage builds
    • Select minimal base images (Alpine, distroless, or slim variants)
    • Configure proper layer caching and build optimization
    • Implement security best practices (non-root user, minimal attack surface)
    • Set up proper file permissions and ownership
  3. Build Process Configuration

    • Configure .dockerignore file to exclude unnecessary files
    • Set up build arguments and environment variables
    • Implement build-time dependency installation and cleanup
    • Configure application bundling and asset optimization
    • Set up proper build context and file structure
  4. Runtime Configuration

    • Configure application startup and health checks
    • Set up proper signal handling and graceful shutdown
    • Configure logging and output redirection
    • Set up environment-specific configuration management
    • Configure resource limits and performance tuning
  5. Security Hardening

    • Run application as non-root user with minimal privileges
    • Configure security scanning and vulnerability assessment
    • Implement secrets management and secure credential handling
    • Set up network security and firewall rules
    • Configure security policies and access controls
  6. Docker Compose Configuration

    • Create compose.yaml for local development
    • Configure service dependencies and networking
    • Set up volume mounting and data persistence
    • Configure environment variables and secrets
    • Set up development vs production configurations
  7. Container Orchestration Preparation

    • Prepare configurations for Kubernetes deployment
    • Create deployment manifests and service definitions
    • Configure ingress and load balancing
    • Set up persistent volumes and storage classes
    • Configure auto-scaling and resource management
  8. Monitoring and Observability

    • Configure application metrics and health endpoints
    • Set up logging aggregation and centralized logging
    • Configure distributed tracing and monitoring
    • Set up alerting and notification systems
    • Configure performance monitoring and profiling
  9. CI/CD Integration

    • Configure automated Docker image building
    • Set up image scanning and security validation
    • Configure image registry and artifact management
    • Set up automated deployment pipelines
    • Configure rollback and blue-green deployment strategies
  10. Testing and Validation

    • Test container builds and functionality
    • Validate security configurations and compliance
    • Test deployment in different environments
    • Validate performance and resource utilization
    • Test backup and disaster recovery procedures
    • Create documentation for container deployment and management