Flezi AgentBox
All Use Cases

DevOps Optimization — CI Optimizer

Shrink Docker images, speed up CI pipelines, and optimize build caches

DevOps Optimization Agent

The Problem

Docker images balloon to 1.2GB because nobody sets up multi-stage builds. CI pipelines take 15 minutes because caches are misconfigured. Developers wait in a feedback loop of push-wait-fail-fix-push-wait. Build costs scale linearly with team size, and slow pipelines kill developer productivity.

The Solution

CI Optimizer analyzes your Dockerfiles, CI configs, and build scripts. It rewrites Dockerfiles with multi-stage builds (1.2GB to 50MB), adds proper layer caching, parallelizes CI jobs, and cuts build times from 15 minutes to 3 minutes.

How It Works

Before Agent

Developer pushes → CI pipeline starts → installs all deps (5 min) → 
builds Docker image from scratch (4 min) → runs tests serially (6 min) → 
total 15 minutes → developer context-switches → 
comes back, sees failure, re-pushes → another 15 min wait

After Agent

Developer pushes → CI cache hits (30s) → parallel test + build (2 min) → 
multi-stage Docker build (30s) → total 3 minutes → 
developer stays in flow → fast iteration cycles

What It Catches

  • ✅ Single-Stage Dockerfiles — full build toolchain in production image
  • ✅ Missing .dockerignore — node_modules and .git in build context
  • ✅ No Layer Caching — COPY . before dependency install
  • ✅ Serial CI Jobs — test, lint, build running sequentially
  • ✅ Missing Build Cache — npm install from scratch every run
  • ✅ Large Base Images — ubuntu:latest instead of alpine/distroless
  • ✅ Unnecessary Dependencies — dev dependencies in production
  • ✅ Missing Health Checks — containers without HEALTHCHECK
  • ✅ Root User in Container — running as root instead of non-root user
  • ✅ Hardcoded Secrets in Build — ARG/ENV with credentials

Real Example

Input (bloated Dockerfile):

dockerfile
FROM node:20
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build
EXPOSE 3000
CMD ["node", "dist/server.js"]
# Image size: 1.2GB

Agent Output:

dockerfile
# Stage 1: Build
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production && cp -r node_modules prod_modules
RUN npm ci
COPY . .
RUN npm run build
 
# Stage 2: Production
FROM node:20-alpine AS runner
RUN addgroup -g 1001 -S app && adduser -S app -u 1001
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/prod_modules ./node_modules
USER app
HEALTHCHECK --interval=30s CMD wget -q --spider http://localhost:3000/health
EXPOSE 3000
CMD ["node", "dist/server.js"]
# Image size: 50MB (96% smaller)
🟢 OPTIMIZED: Multi-stage build — 1.2GB → 50MB
🟢 OPTIMIZED: Alpine base — 350MB → 50MB base layer
🟢 OPTIMIZED: Non-root user — security hardened
🟢 OPTIMIZED: Layer caching — package.json copied first
🟢 ADDED: Health check — container orchestrator aware
🟢 ADDED: .dockerignore — excludes node_modules, .git, .env

Impact Numbers

| Metric | Before | After | |--------|--------|-------| | Docker image size | 1.2GB | 50MB | | CI pipeline time | 15 minutes | 3 minutes | | Build cache hit rate | 0% | 85%+ | | Monthly CI costs | $500+ | $150 | | Deploy frequency | 2-3/day | 10+/day |

Getting Started

bash
agentbox pull ci-optimizer
agentbox ci-optimizer "optimize my Docker and CI setup"

Related Use Cases