hi
This commit is contained in:
236
docker/Dockerfile
Normal file
236
docker/Dockerfile
Normal file
@@ -0,0 +1,236 @@
|
||||
# CI/CD Chaos Engine - Over-engineered Docker Container
|
||||
# This Dockerfile demonstrates professional containerization with satirical over-engineering
|
||||
|
||||
# Multi-stage build with excessive optimization
|
||||
FROM --platform=linux/amd64 alpine:3.18 as base-builder
|
||||
|
||||
# Set build arguments with ridiculous defaults
|
||||
ARG CHAOS_LEVEL=5
|
||||
ARG ROAST_INTENSITY=7
|
||||
ARG BUILD_DATE=unknown
|
||||
ARG GIT_COMMIT=unknown
|
||||
ARG GIT_BRANCH=unknown
|
||||
|
||||
# Install way too many build dependencies
|
||||
RUN apk add --no-cache \
|
||||
bash \
|
||||
curl \
|
||||
wget \
|
||||
git \
|
||||
python3 \
|
||||
python3-dev \
|
||||
py3-pip \
|
||||
py3-setuptools \
|
||||
py3-wheel \
|
||||
build-base \
|
||||
musl-dev \
|
||||
linux-headers \
|
||||
openssl-dev \
|
||||
libffi-dev \
|
||||
yaml-dev \
|
||||
json-c-dev \
|
||||
curl-dev \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/cache/apk/*
|
||||
|
||||
# Create build directory structure (excessive)
|
||||
RUN mkdir -p /app/{src,scripts,config,docs,tests,logs,tmp,cache,backups,exports,imports,static,media,templates,data}
|
||||
|
||||
# Copy all files (because we're thorough)
|
||||
COPY . /app/
|
||||
|
||||
# Set working directory
|
||||
WORKDIR /app
|
||||
|
||||
# Install Python dependencies with excessive optimization
|
||||
RUN python3 -m pip install --no-cache-dir --upgrade pip setuptools wheel && \
|
||||
python3 -m pip install --no-cache-dir \
|
||||
flask \
|
||||
fastapi \
|
||||
uvicorn \
|
||||
requests \
|
||||
pyyaml \
|
||||
click \
|
||||
rich \
|
||||
prometheus-client \
|
||||
structlog \
|
||||
python-json-logger \
|
||||
colorama \
|
||||
tqdm \
|
||||
psutil \
|
||||
docker \
|
||||
kubernetes \
|
||||
boto3 \
|
||||
azure-storage-blob \
|
||||
google-cloud-storage \
|
||||
redis \
|
||||
psycopg2-binary \
|
||||
pymongo \
|
||||
elasticsearch \
|
||||
sentry-sdk \
|
||||
newrelic \
|
||||
datadog \
|
||||
slack-sdk \
|
||||
email-validator \
|
||||
bcrypt \
|
||||
cryptography \
|
||||
jwt \
|
||||
python-dotenv \
|
||||
httpx \
|
||||
aiohttp \
|
||||
async-timeout \
|
||||
tenacity \
|
||||
backoff \
|
||||
retrying \
|
||||
pydantic \
|
||||
marshmallow \
|
||||
cerberus \
|
||||
voluptuous \
|
||||
jsonschema \
|
||||
tox \
|
||||
pytest \
|
||||
pytest-cov \
|
||||
pytest-mock \
|
||||
pytest-asyncio \
|
||||
black \
|
||||
isort \
|
||||
flake8 \
|
||||
mypy \
|
||||
bandit \
|
||||
safety \
|
||||
semgrep \
|
||||
pre-commit \
|
||||
shellcheck \
|
||||
hadolint \
|
||||
yamllint \
|
||||
markdownlint-cli2 \
|
||||
gitlint \
|
||||
commitizen \
|
||||
conventional-pre-commit
|
||||
|
||||
# Second stage - optimization builder
|
||||
FROM base-builder as optimizer
|
||||
|
||||
# Over-optimization steps
|
||||
RUN find /usr/local/lib/python3.*/site-packages -name "*.pyc" -delete && \
|
||||
find /usr/local/lib/python3.*/site-packages -name "*.pyo" -delete && \
|
||||
find /usr/local/lib/python3.*/site-packages -name "__pycache__" -type d -exec rm -rf {} + 2>/dev/null || true
|
||||
|
||||
# Remove unnecessary files (excessive cleanup)
|
||||
RUN rm -rf /usr/local/lib/python3.*/site-packages/*.egg-info && \
|
||||
rm -rf /usr/local/lib/python3.*/site-packages/*/tests && \
|
||||
rm -rf /usr/local/lib/python3.*/site-packages/*/test && \
|
||||
rm -rf /usr/local/lib/python3.*/site-packages/*/docs && \
|
||||
rm -rf /usr/local/lib/python3.*/site-packages/*/examples
|
||||
|
||||
# Third stage - production build
|
||||
FROM --platform=linux/amd64 alpine:3.18 as production
|
||||
|
||||
# Install only what we actually need (but still overkill)
|
||||
RUN apk add --no-cache \
|
||||
bash \
|
||||
curl \
|
||||
git \
|
||||
python3 \
|
||||
py3-pip \
|
||||
py3-yaml \
|
||||
py3-requests \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/cache/apk/*
|
||||
|
||||
# Create non-root user with excessive configuration
|
||||
RUN addgroup -g 1001 -S chaos && \
|
||||
adduser -u 1001 -S chaos -G chaos && \
|
||||
mkdir -p /app /tmp /var/log/chaos /var/run/chaos && \
|
||||
chown -R chaos:chaos /app /tmp /var/log/chaos /var/run/chaos
|
||||
|
||||
# Copy from optimizer stage
|
||||
COPY --from=optimizer /usr/local/lib/python3.*/site-packages /usr/local/lib/python3.*/site-packages
|
||||
COPY --from=optimizer /usr/local/bin /usr/local/bin
|
||||
|
||||
# Copy application files
|
||||
COPY --chown=chaos:chaos . /app/
|
||||
|
||||
# Set working directory
|
||||
WORKDIR /app
|
||||
|
||||
# Create directories with excessive permissions
|
||||
RUN mkdir -p /app/{scripts,config,logs,reports,artifacts,docs,cache,tmp} && \
|
||||
chmod -R 755 /app && \
|
||||
chmod -R 777 /app/{logs,cache,tmp}
|
||||
|
||||
# Set environment variables (over-engineered)
|
||||
ENV CHAOS_LEVEL=${CHAOS_LEVEL:-5}
|
||||
ENV ROAST_INTENSITY=${ROAST_INTENSITY:-7}
|
||||
ENV CELEBRATION_MODE="full"
|
||||
ENV DEVELOPER_CHALLENGE="true"
|
||||
ENV PYTHONUNBUFFERED=1
|
||||
ENV PYTHONDONTWRITEBYTECODE=1
|
||||
ENV PYTHONPATH=/app
|
||||
ENV LOG_LEVEL=INFO
|
||||
ENV CHAOS_HOME=/app
|
||||
ENV CHAOS_CONFIG=/app/config
|
||||
ENV CHAOS_LOGS=/app/logs
|
||||
ENV CHAOS_CACHE=/app/cache
|
||||
ENV CHAOS_TMP=/app/tmp
|
||||
ENV CHAOS_ARTIFACTS=/app/artifacts
|
||||
ENV BUILD_DATE=${BUILD_DATE}
|
||||
ENV GIT_COMMIT=${GIT_COMMIT}
|
||||
ENV GIT_BRANCH=${GIT_BRANCH}
|
||||
ENV CONTAINER_VERSION=1.0.0
|
||||
ENV CONTAINER_BUILD=production
|
||||
ENV HEALTH_CHECK_ENABLED=true
|
||||
ENV METRICS_ENABLED=true
|
||||
ENV TRACING_ENABLED=true
|
||||
ENV DEBUG_MODE=false
|
||||
ENV PRODUCTION_MODE=true
|
||||
|
||||
# Install entrypoint script
|
||||
COPY docker/entrypoint.sh /entrypoint.sh
|
||||
RUN chmod +x /entrypoint.sh
|
||||
|
||||
# Create health check script
|
||||
RUN echo '#!/bin/bash' > /app/healthcheck.sh && \
|
||||
echo 'echo "🎪 CI/CD Chaos Container Health Check"' >> /app/healthcheck.sh && \
|
||||
echo 'echo "Chaos Level: $CHAOS_LEVEL"' >> /app/healthcheck.sh && \
|
||||
echo 'echo "Status: Operating with maximum chaos"' >> /app/healthcheck.sh && \
|
||||
echo 'exit 0' >> /app/healthcheck.sh && \
|
||||
chmod +x /app/healthcheck.sh
|
||||
|
||||
# Expose ports (overkill for this application)
|
||||
EXPOSE 8080 9090 3000 5000 80 443
|
||||
|
||||
# Add labels (excessive metadata)
|
||||
LABEL maintainer="CI/CD Chaos Team <chaos@example.com>" \
|
||||
version="1.0.0" \
|
||||
description="CI/CD Chaos Engine - Over-engineered DevOps Satire" \
|
||||
chaos.level="${CHAOS_LEVEL}" \
|
||||
roast.intensity="${ROAST_INTENSITY}" \
|
||||
build.date="${BUILD_DATE}" \
|
||||
git.commit="${GIT_COMMIT}" \
|
||||
git.branch="${GIT_BRANCH}" \
|
||||
architecture="amd64" \
|
||||
os="alpine" \
|
||||
python.version="3.11" \
|
||||
docker.version="24.0" \
|
||||
compliance="SOC2,ISO27001,GDPR,HIPAA" \
|
||||
security.scan.date="2024-01-01" \
|
||||
quality.gate="passed" \
|
||||
test.coverage="98.5%" \
|
||||
performance.rating="excellent"
|
||||
|
||||
# Health check (excessive but professional)
|
||||
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
|
||||
CMD ["/app/healthcheck.sh"]
|
||||
|
||||
# Volumes (excessive for this use case)
|
||||
VOLUME ["/app/logs", "/app/cache", "/app/tmp", "/app/artifacts"]
|
||||
|
||||
# Switch to non-root user
|
||||
USER chaos
|
||||
|
||||
# Entry point with excessive ceremony
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
|
||||
# Default command
|
||||
CMD ["python3", "-m", "http.server", "8080", "--directory", "/app"]
|
390
docker/entrypoint.sh
Normal file
390
docker/entrypoint.sh
Normal file
@@ -0,0 +1,390 @@
|
||||
#!/bin/bash
|
||||
|
||||
# CI/CD Chaos Engine Container Entry Point
|
||||
# Over-engineered entry point with excessive initialization
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
PURPLE='\033[0;35m'
|
||||
CYAN='\033[0;36m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Logging function
|
||||
log() {
|
||||
echo -e "${GREEN}[$(date '+%Y-%m-%d %H:%M:%S')]${NC} $1"
|
||||
}
|
||||
|
||||
warn() {
|
||||
echo -e "${YELLOW}[$(date '+%Y-%m-%d %H:%M:%S')]${NC} $1"
|
||||
}
|
||||
|
||||
error() {
|
||||
echo -e "${RED}[$(date '+%Y-%m-%d %H:%M:%S')]${NC} $1"
|
||||
}
|
||||
|
||||
chaos_log() {
|
||||
echo -e "${PURPLE}[CHAOS]${NC} $1"
|
||||
}
|
||||
|
||||
# Function to display ASCII art banner
|
||||
display_banner() {
|
||||
echo ""
|
||||
echo "🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪"
|
||||
echo "🎪 🎪"
|
||||
echo "🎪 CI/CD CHAOS ENGINE CONTAINER 🎪"
|
||||
echo "🎪 🎪"
|
||||
echo "🎪 Over-engineered DevOps Satire 🎪"
|
||||
echo "🎪 🎪"
|
||||
echo "🎪 Chaos Level: ${CHAOS_LEVEL:-5} 🎪"
|
||||
echo "🎪 Roast Intensity: ${ROAST_INTENSITY:-7} 🎪"
|
||||
echo "🎪 Celebration Mode: ${CELEBRATION_MODE:-full} 🎪"
|
||||
echo "🎪 🎪"
|
||||
echo "🎪 Professional DevOps with Humor 🎪"
|
||||
echo "🎪 🎪"
|
||||
echo "🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪🎪"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Function to perform container initialization
|
||||
initialize_container() {
|
||||
log "🚀 Initializing CI/CD Chaos Engine Container..."
|
||||
|
||||
# Create necessary directories
|
||||
log "📁 Creating directory structure..."
|
||||
mkdir -p /app/{logs,cache,tmp,artifacts,reports} || true
|
||||
mkdir -p /var/log/chaos /var/run/chaos || true
|
||||
|
||||
# Set permissions
|
||||
log "🔒 Setting permissions..."
|
||||
chmod -R 755 /app || true
|
||||
chmod -R 777 /app/{logs,cache,tmp} || true
|
||||
|
||||
# Initialize chaos engine
|
||||
log "🎪 Initializing chaos engine..."
|
||||
if [[ -f /app/scripts/chaos-engine.sh ]]; then
|
||||
chmod +x /app/scripts/chaos-engine.sh || true
|
||||
fi
|
||||
|
||||
# Initialize Python scripts
|
||||
log "🐍 Setting up Python scripts..."
|
||||
for script in /app/scripts/*.py; do
|
||||
if [[ -f "$script" ]]; then
|
||||
chmod +x "$script" || true
|
||||
fi
|
||||
done
|
||||
|
||||
# Initialize configuration
|
||||
log "⚙️ Loading configuration..."
|
||||
export CHAOS_CONFIG_LOADED=true
|
||||
|
||||
# Generate initial chaos report
|
||||
log "📊 Generating initial chaos report..."
|
||||
if command -v python3 &> /dev/null && [[ -f /app/scripts/chaos-engine.sh ]]; then
|
||||
/app/scripts/chaos-engine.sh report 2>/dev/null || true
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to perform health checks
|
||||
perform_health_checks() {
|
||||
log "🏥 Performing container health checks..."
|
||||
|
||||
# Check basic functionality
|
||||
if ! command -v python3 &> /dev/null; then
|
||||
error "❌ Python3 not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v bash &> /dev/null; then
|
||||
error "❌ Bash not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check application files
|
||||
if [[ ! -f /app/README.md ]]; then
|
||||
warn "⚠️ README.md not found"
|
||||
fi
|
||||
|
||||
if [[ ! -f /app/.gitlab-ci.yml ]]; then
|
||||
warn "⚠️ GitLab CI configuration not found"
|
||||
fi
|
||||
|
||||
# Check scripts directory
|
||||
if [[ ! -d /app/scripts ]]; then
|
||||
warn "⚠️ Scripts directory not found"
|
||||
else
|
||||
script_count=$(find /app/scripts -name "*.sh" -o -name "*.py" | wc -l)
|
||||
log "📜 Found $script_count scripts"
|
||||
fi
|
||||
|
||||
# Check configuration
|
||||
if [[ ! -d /app/config ]]; then
|
||||
warn "⚠️ Configuration directory not found"
|
||||
fi
|
||||
|
||||
log "✅ Health checks completed"
|
||||
}
|
||||
|
||||
# Function to setup monitoring (overkill)
|
||||
setup_monitoring() {
|
||||
log "📊 Setting up monitoring and observability..."
|
||||
|
||||
# Create monitoring directories
|
||||
mkdir -p /app/monitoring/{metrics,logs,traces}
|
||||
|
||||
# Generate mock metrics
|
||||
cat > /app/monitoring/metrics/prometheus.txt << 'EOF'
|
||||
# TYPE chaos_level gauge
|
||||
chaos_level{container="cicd-chaos"} ${CHAOS_LEVEL:-5}
|
||||
|
||||
# TYPE roast_intensity gauge
|
||||
roast_intensity{container="cicd-chaos"} ${ROAST_INTENSITY:-7}
|
||||
|
||||
# TYPE celebration_mode gauge
|
||||
celebration_mode{container="cicd-chaos",mode="${CELEBRATION_MODE:-full}"} 1
|
||||
|
||||
# TYPE pipeline_stages gauge
|
||||
pipeline_stages{container="cicd-chaos"} 30
|
||||
|
||||
# TYPE humor_level gauge
|
||||
humor_level{container="cicd-chaos"} maximum
|
||||
|
||||
# TYPE professional_implementation gauge
|
||||
professional_implementation{container="cicd-chaos"} 100
|
||||
EOF
|
||||
|
||||
# Create log configuration
|
||||
cat > /app/monitoring/logs/config.yaml << 'EOF'
|
||||
level: info
|
||||
format: json
|
||||
outputs:
|
||||
- console
|
||||
- file
|
||||
- elasticsearch
|
||||
rotation: true
|
||||
compression: true
|
||||
retention: 7d
|
||||
EOF
|
||||
|
||||
log "✅ Monitoring setup completed"
|
||||
}
|
||||
|
||||
# Function to setup security (excessive)
|
||||
setup_security() {
|
||||
log "🔒 Setting up security configuration..."
|
||||
|
||||
# Create security directory
|
||||
mkdir -p /app/security/{certs,policies,audits}
|
||||
|
||||
# Generate security policies
|
||||
cat > /app/security/policies/container-security.yaml << 'EOF'
|
||||
security:
|
||||
container:
|
||||
runtime: "runc"
|
||||
seccomp: true
|
||||
apparmor: true
|
||||
no_new_privs: true
|
||||
read_only_rootfs: false
|
||||
run_as_non_root: true
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
add:
|
||||
- CHOWN
|
||||
- NET_BIND_SERVICE
|
||||
resources:
|
||||
limits:
|
||||
memory: "512Mi"
|
||||
cpu: "500m"
|
||||
requests:
|
||||
memory: "256Mi"
|
||||
cpu: "250m"
|
||||
network:
|
||||
disabled: false
|
||||
readonly_rootfs: false
|
||||
EOF
|
||||
|
||||
# Generate audit configuration
|
||||
cat > /app/security/audits/audit.yaml << 'EOF'
|
||||
audit:
|
||||
enabled: true
|
||||
level: "verbose"
|
||||
events:
|
||||
- "process_start"
|
||||
- "file_access"
|
||||
- "network_connection"
|
||||
- "system_call"
|
||||
output:
|
||||
- "syslog"
|
||||
- "file"
|
||||
retention: "30d"
|
||||
EOF
|
||||
|
||||
log "✅ Security setup completed"
|
||||
}
|
||||
|
||||
# Function to perform chaos rituals
|
||||
perform_chaos_rituals() {
|
||||
if [[ "${CHAOS_LEVEL:-5}" -ge 7 ]]; then
|
||||
chaos_log "🎲 Performing chaos rituals..."
|
||||
|
||||
# Random chaos event
|
||||
local chaos_events=(
|
||||
"Cosmic alignment check"
|
||||
"Developer coffee level verification"
|
||||
"Git commit graph analysis"
|
||||
"Code quality divination"
|
||||
"Build speed optimization ritual"
|
||||
"Documentation completeness blessing"
|
||||
"Test coverage enhancement ceremony"
|
||||
"Security scan purification"
|
||||
"Performance tuning meditation"
|
||||
"Deployment success prayer"
|
||||
)
|
||||
|
||||
local random_event=${chaos_events[$((RANDOM % ${#chaos_events[@]}))]}
|
||||
chaos_log "🔮 Performing: $random_event"
|
||||
sleep 1
|
||||
chaos_log "✨ Chaos ritual completed successfully"
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to display container information
|
||||
display_container_info() {
|
||||
log "📋 Container Information:"
|
||||
echo " 🏷️ Version: ${CONTAINER_VERSION:-unknown}"
|
||||
echo " 🔧 Build: ${CONTAINER_BUILD:-production}"
|
||||
echo " 🎪 Chaos Level: ${CHAOS_LEVEL:-5}"
|
||||
echo " 🔥 Roast Intensity: ${ROAST_INTENSITY:-7}"
|
||||
echo " 🎉 Celebration Mode: ${CELEBRATION_MODE:-full}"
|
||||
echo " 🎮 Developer Challenge: ${DEVELOPER_CHALLENGE:-true}"
|
||||
echo " 📅 Build Date: ${BUILD_DATE:-unknown}"
|
||||
echo " 🔀 Git Commit: ${GIT_COMMIT:-unknown}"
|
||||
echo " 🌿 Git Branch: ${GIT_BRANCH:-unknown}"
|
||||
echo " 🐍 Python Version: $(python3 --version 2>/dev/null || echo 'unknown')"
|
||||
echo " 🐳 Docker Version: $(docker --version 2>/dev/null | head -1 || echo 'unknown')"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Function to start the application
|
||||
start_application() {
|
||||
log "🚀 Starting CI/CD Chaos Engine..."
|
||||
|
||||
# Determine what to run based on command
|
||||
case "${1:-}" in
|
||||
"server")
|
||||
log "🌐 Starting HTTP server..."
|
||||
python3 -m http.server 8080 --directory /app
|
||||
;;
|
||||
"chaos-engine")
|
||||
log "🎪 Starting chaos engine..."
|
||||
if [[ -f /app/scripts/chaos-engine.sh ]]; then
|
||||
/app/scripts/chaos-engine.sh "${2:-report}"
|
||||
else
|
||||
error "❌ Chaos engine script not found"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
"roast-bot")
|
||||
log "🤖 Starting roast bot..."
|
||||
if [[ -f /app/scripts/roast-bot.py ]]; then
|
||||
python3 /app/scripts/roast-bot.py "${2:-/app}"
|
||||
else
|
||||
error "❌ Roast bot script not found"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
"commit-judge")
|
||||
log "👨⚖️ Starting commit message judge..."
|
||||
if [[ -f /app/scripts/commit-judge.py ]]; then
|
||||
python3 /app/scripts/commit-judge.py "${2:- --help}"
|
||||
else
|
||||
error "❌ Commit judge script not found"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
"pr-challenge")
|
||||
log "🎮 Starting PR challenge system..."
|
||||
if [[ -f /app/scripts/pr-challenge.py ]]; then
|
||||
python3 /app/scripts/pr-challenge.py "${2:- --help}"
|
||||
else
|
||||
error "❌ PR challenge script not found"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
"shell")
|
||||
log "🐚 Starting interactive shell..."
|
||||
exec /bin/bash
|
||||
;;
|
||||
*)
|
||||
log "🎪 Starting default mode..."
|
||||
echo ""
|
||||
echo "🎪 CI/CD Chaos Engine - Interactive Mode"
|
||||
echo "======================================"
|
||||
echo ""
|
||||
echo "Available commands:"
|
||||
echo " server - Start HTTP server"
|
||||
echo " chaos-engine - Run chaos engine"
|
||||
echo " roast-bot - Run code roast bot"
|
||||
echo " commit-judge - Run commit message judge"
|
||||
echo " pr-challenge - Run PR challenge system"
|
||||
echo " shell - Start interactive shell"
|
||||
echo " help - Show this help"
|
||||
echo ""
|
||||
echo "Environment Variables:"
|
||||
echo " CHAOS_LEVEL=${CHAOS_LEVEL:-5}"
|
||||
echo " ROAST_INTENSITY=${ROAST_INTENSITY:-7}"
|
||||
echo " CELEBRATION_MODE=${CELEBRATION_MODE:-full}"
|
||||
echo " DEVELOPER_CHALLENGE=${DEVELOPER_CHALLENGE:-true}"
|
||||
echo ""
|
||||
echo "Starting HTTP server on port 8080..."
|
||||
python3 -m http.server 8080 --directory /app
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Main execution
|
||||
main() {
|
||||
# Display banner
|
||||
display_banner
|
||||
|
||||
# Initialize container
|
||||
initialize_container
|
||||
|
||||
# Perform health checks
|
||||
perform_health_checks
|
||||
|
||||
# Setup monitoring
|
||||
setup_monitoring
|
||||
|
||||
# Setup security
|
||||
setup_security
|
||||
|
||||
# Perform chaos rituals
|
||||
perform_chaos_rituals
|
||||
|
||||
# Display container information
|
||||
display_container_info
|
||||
|
||||
# Show startup celebration
|
||||
if [[ "${CELEBRATION_MODE:-full}" == "full" ]]; then
|
||||
log "🎉 Container initialization complete!"
|
||||
log "🚀 CI/CD Chaos Engine is ready for maximum over-engineering!"
|
||||
echo ""
|
||||
echo "🎊🎊🎊 SUCCESS! 🎊🎊🎊"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# Start application
|
||||
start_application "$@"
|
||||
}
|
||||
|
||||
# Trap signals for graceful shutdown
|
||||
trap 'log "🛑 Container shutting down..."; exit 0' SIGTERM SIGINT
|
||||
|
||||
# Execute main function with all arguments
|
||||
main "$@"
|
Reference in New Issue
Block a user