94 lines
4.0 KiB
Markdown
94 lines
4.0 KiB
Markdown
---
|
|
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
|