From magic-powers
Use when creating Dockerfiles, docker-compose configs, optimizing container images, or setting up containerized development environments
npx claudepluginhub kienbui1995/magic-powers --plugin magic-powersThis skill uses the workspace's default tool permissions.
Containers should be small, secure, and reproducible. A good Dockerfile builds fast, runs lean, and has no secrets baked in.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Containers should be small, secure, and reproducible. A good Dockerfile builds fast, runs lean, and has no secrets baked in.
# Stage 1: Build
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
# Stage 2: Runtime
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
USER node
EXPOSE 3000
CMD ["node", "dist/index.js"]
alpine or distroless, not ubuntupackage.json before source code (cache deps layer)USER node or USER appusernode_modules, .git, .env, test filesnode:20.11-alpine not node:latestHEALTHCHECK CMD curl -f http://localhost:3000/health| Stack | Target Size |
|---|---|
| Node.js | <150MB |
| Python | <200MB |
| Go | <20MB (static binary) |
| Java | <200MB (JRE slim) |
services:
app:
build: .
ports: ["3000:3000"]
volumes: ["./src:/app/src"] # hot reload
env_file: .env
depends_on:
db: { condition: service_healthy }
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: app
POSTGRES_PASSWORD: dev
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
interval: 5s
docker scout or trivy