start-vibing 2.0.11 → 2.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +177 -177
- package/dist/cli.js +19 -2
- package/package.json +42 -42
- package/template/.claude/CLAUDE.md +174 -174
- package/template/.claude/agents/01-orchestration/agent-selector.md +130 -130
- package/template/.claude/agents/01-orchestration/checkpoint-manager.md +142 -142
- package/template/.claude/agents/01-orchestration/context-manager.md +138 -138
- package/template/.claude/agents/01-orchestration/error-recovery.md +182 -182
- package/template/.claude/agents/01-orchestration/orchestrator.md +114 -114
- package/template/.claude/agents/01-orchestration/parallel-coordinator.md +141 -141
- package/template/.claude/agents/01-orchestration/task-decomposer.md +121 -121
- package/template/.claude/agents/01-orchestration/workflow-router.md +114 -114
- package/template/.claude/agents/02-typescript/bun-runtime-expert.md +197 -197
- package/template/.claude/agents/02-typescript/esm-resolver.md +193 -193
- package/template/.claude/agents/02-typescript/import-alias-enforcer.md +158 -158
- package/template/.claude/agents/02-typescript/ts-generics-helper.md +183 -183
- package/template/.claude/agents/02-typescript/ts-migration-helper.md +238 -238
- package/template/.claude/agents/02-typescript/ts-strict-checker.md +180 -180
- package/template/.claude/agents/02-typescript/ts-types-analyzer.md +199 -199
- package/template/.claude/agents/02-typescript/type-definition-writer.md +187 -187
- package/template/.claude/agents/02-typescript/zod-schema-designer.md +212 -212
- package/template/.claude/agents/02-typescript/zod-validator.md +158 -158
- package/template/.claude/agents/03-testing/playwright-assertions.md +265 -265
- package/template/.claude/agents/03-testing/playwright-e2e.md +247 -247
- package/template/.claude/agents/03-testing/playwright-fixtures.md +234 -234
- package/template/.claude/agents/03-testing/playwright-multi-viewport.md +256 -256
- package/template/.claude/agents/03-testing/playwright-page-objects.md +247 -247
- package/template/.claude/agents/03-testing/test-cleanup-manager.md +248 -248
- package/template/.claude/agents/03-testing/test-data-generator.md +254 -254
- package/template/.claude/agents/03-testing/tester-integration.md +278 -278
- package/template/.claude/agents/03-testing/tester-unit.md +207 -207
- package/template/.claude/agents/03-testing/vitest-config.md +287 -287
- package/template/.claude/agents/04-docker/container-health.md +255 -255
- package/template/.claude/agents/04-docker/deployment-validator.md +225 -225
- package/template/.claude/agents/04-docker/docker-compose-designer.md +281 -281
- package/template/.claude/agents/04-docker/docker-env-manager.md +235 -235
- package/template/.claude/agents/04-docker/docker-multi-stage.md +241 -241
- package/template/.claude/agents/04-docker/dockerfile-optimizer.md +208 -208
- package/template/.claude/agents/05-database/database-seeder.md +273 -273
- package/template/.claude/agents/05-database/mongodb-query-optimizer.md +230 -230
- package/template/.claude/agents/05-database/mongoose-aggregation.md +306 -306
- package/template/.claude/agents/05-database/mongoose-index-optimizer.md +182 -182
- package/template/.claude/agents/05-database/mongoose-schema-designer.md +267 -267
- package/template/.claude/agents/06-security/auth-session-validator.md +68 -68
- package/template/.claude/agents/06-security/input-sanitizer.md +80 -80
- package/template/.claude/agents/06-security/owasp-checker.md +97 -97
- package/template/.claude/agents/06-security/permission-auditor.md +100 -100
- package/template/.claude/agents/06-security/security-auditor.md +84 -84
- package/template/.claude/agents/06-security/sensitive-data-scanner.md +83 -83
- package/template/.claude/agents/07-documentation/api-documenter.md +136 -136
- package/template/.claude/agents/07-documentation/changelog-manager.md +105 -105
- package/template/.claude/agents/07-documentation/documenter.md +76 -76
- package/template/.claude/agents/07-documentation/domain-updater.md +81 -81
- package/template/.claude/agents/07-documentation/jsdoc-generator.md +114 -114
- package/template/.claude/agents/07-documentation/readme-generator.md +135 -135
- package/template/.claude/agents/08-git/branch-manager.md +58 -58
- package/template/.claude/agents/08-git/commit-manager.md +63 -63
- package/template/.claude/agents/08-git/pr-creator.md +76 -76
- package/template/.claude/agents/09-quality/code-reviewer.md +71 -71
- package/template/.claude/agents/09-quality/quality-checker.md +67 -67
- package/template/.claude/agents/10-research/best-practices-finder.md +89 -89
- package/template/.claude/agents/10-research/competitor-analyzer.md +106 -106
- package/template/.claude/agents/10-research/pattern-researcher.md +93 -93
- package/template/.claude/agents/10-research/research-cache-manager.md +76 -76
- package/template/.claude/agents/10-research/research-web.md +98 -98
- package/template/.claude/agents/10-research/tech-evaluator.md +101 -101
- package/template/.claude/agents/11-ui-ux/accessibility-auditor.md +136 -136
- package/template/.claude/agents/11-ui-ux/design-system-enforcer.md +125 -125
- package/template/.claude/agents/11-ui-ux/skeleton-generator.md +118 -118
- package/template/.claude/agents/11-ui-ux/ui-desktop.md +132 -132
- package/template/.claude/agents/11-ui-ux/ui-mobile.md +98 -98
- package/template/.claude/agents/11-ui-ux/ui-tablet.md +110 -110
- package/template/.claude/agents/12-performance/api-latency-analyzer.md +156 -156
- package/template/.claude/agents/12-performance/bundle-analyzer.md +113 -113
- package/template/.claude/agents/12-performance/memory-leak-detector.md +137 -137
- package/template/.claude/agents/12-performance/performance-profiler.md +115 -115
- package/template/.claude/agents/12-performance/query-optimizer.md +124 -124
- package/template/.claude/agents/12-performance/render-optimizer.md +154 -154
- package/template/.claude/agents/13-debugging/build-error-fixer.md +207 -207
- package/template/.claude/agents/13-debugging/debugger.md +149 -149
- package/template/.claude/agents/13-debugging/error-stack-analyzer.md +141 -141
- package/template/.claude/agents/13-debugging/network-debugger.md +208 -208
- package/template/.claude/agents/13-debugging/runtime-error-fixer.md +181 -181
- package/template/.claude/agents/13-debugging/type-error-resolver.md +185 -185
- package/template/.claude/agents/14-validation/final-validator.md +93 -93
- package/template/.claude/agents/_backup/analyzer.md +134 -134
- package/template/.claude/agents/_backup/code-reviewer.md +279 -279
- package/template/.claude/agents/_backup/commit-manager.md +219 -219
- package/template/.claude/agents/_backup/debugger.md +280 -280
- package/template/.claude/agents/_backup/documenter.md +237 -237
- package/template/.claude/agents/_backup/domain-updater.md +197 -197
- package/template/.claude/agents/_backup/final-validator.md +169 -169
- package/template/.claude/agents/_backup/orchestrator.md +149 -149
- package/template/.claude/agents/_backup/performance.md +232 -232
- package/template/.claude/agents/_backup/quality-checker.md +240 -240
- package/template/.claude/agents/_backup/research.md +315 -315
- package/template/.claude/agents/_backup/security-auditor.md +192 -192
- package/template/.claude/agents/_backup/tester.md +566 -566
- package/template/.claude/agents/_backup/ui-ux-reviewer.md +247 -247
- package/template/.claude/config/README.md +30 -30
- package/template/.claude/config/mcp-config.json +344 -344
- package/template/.claude/config/project-config.json +53 -53
- package/template/.claude/config/quality-gates.json +46 -46
- package/template/.claude/config/security-rules.json +45 -45
- package/template/.claude/config/testing-config.json +164 -164
- package/template/.claude/hooks/SETUP.md +126 -126
- package/template/.claude/hooks/run-hook.ts +176 -176
- package/template/.claude/hooks/stop-validator.ts +914 -824
- package/template/.claude/hooks/user-prompt-submit.ts +886 -886
- package/template/.claude/scripts/mcp-quick-install.ts +151 -151
- package/template/.claude/scripts/setup-mcps.ts +651 -651
- package/template/.claude/settings.json +275 -275
- package/template/.claude/skills/bun-runtime/SKILL.md +430 -430
- package/template/.claude/skills/codebase-knowledge/domains/claude-system.md +431 -431
- package/template/.claude/skills/codebase-knowledge/domains/mcp-integration.md +295 -295
- package/template/.claude/skills/debugging-patterns/SKILL.md +485 -485
- package/template/.claude/skills/docker-patterns/SKILL.md +555 -555
- package/template/.claude/skills/git-workflow/SKILL.md +454 -454
- package/template/.claude/skills/mongoose-patterns/SKILL.md +499 -499
- package/template/.claude/skills/nextjs-app-router/SKILL.md +327 -327
- package/template/.claude/skills/performance-patterns/SKILL.md +547 -547
- package/template/.claude/skills/playwright-automation/SKILL.md +438 -438
- package/template/.claude/skills/react-patterns/SKILL.md +389 -389
- package/template/.claude/skills/research-cache/SKILL.md +222 -222
- package/template/.claude/skills/shadcn-ui/SKILL.md +511 -511
- package/template/.claude/skills/tailwind-patterns/SKILL.md +465 -465
- package/template/.claude/skills/test-coverage/SKILL.md +467 -467
- package/template/.claude/skills/trpc-api/SKILL.md +434 -434
- package/template/.claude/skills/typescript-strict/SKILL.md +367 -367
- package/template/.claude/skills/zod-validation/SKILL.md +403 -403
- package/template/CLAUDE.md +117 -117
|
@@ -1,208 +1,208 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dockerfile-optimizer
|
|
3
|
-
description: 'AUTOMATICALLY invoke when creating or modifying Dockerfile. Triggers: new Dockerfile, docker build slow, large image size. Optimizes for size and speed. PROACTIVELY creates efficient multi-stage builds.'
|
|
4
|
-
model: haiku
|
|
5
|
-
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
skills: docker-patterns
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Dockerfile Optimizer Agent
|
|
10
|
-
|
|
11
|
-
You optimize Dockerfiles for size, speed, and security.
|
|
12
|
-
|
|
13
|
-
## Bun + TypeScript Dockerfile Template
|
|
14
|
-
|
|
15
|
-
```dockerfile
|
|
16
|
-
# Build stage
|
|
17
|
-
FROM oven/bun:1 AS builder
|
|
18
|
-
|
|
19
|
-
WORKDIR /app
|
|
20
|
-
|
|
21
|
-
# Copy dependency files
|
|
22
|
-
COPY package.json bun.lockb ./
|
|
23
|
-
|
|
24
|
-
# Install dependencies
|
|
25
|
-
RUN bun install --frozen-lockfile
|
|
26
|
-
|
|
27
|
-
# Copy source
|
|
28
|
-
COPY . .
|
|
29
|
-
|
|
30
|
-
# Build (if applicable)
|
|
31
|
-
RUN bun run build
|
|
32
|
-
|
|
33
|
-
# Production stage
|
|
34
|
-
FROM oven/bun:1-slim AS production
|
|
35
|
-
|
|
36
|
-
WORKDIR /app
|
|
37
|
-
|
|
38
|
-
# Copy built assets and dependencies
|
|
39
|
-
COPY --from=builder /app/dist ./dist
|
|
40
|
-
COPY --from=builder /app/node_modules ./node_modules
|
|
41
|
-
COPY --from=builder /app/package.json ./
|
|
42
|
-
|
|
43
|
-
# Non-root user
|
|
44
|
-
USER bun
|
|
45
|
-
|
|
46
|
-
# Environment
|
|
47
|
-
ENV NODE_ENV=production
|
|
48
|
-
|
|
49
|
-
# Health check
|
|
50
|
-
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
|
51
|
-
CMD curl -f http://localhost:3000/health || exit 1
|
|
52
|
-
|
|
53
|
-
EXPOSE 3000
|
|
54
|
-
|
|
55
|
-
CMD ["bun", "run", "dist/index.js"]
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Optimization Techniques
|
|
59
|
-
|
|
60
|
-
### 1. Layer Caching
|
|
61
|
-
|
|
62
|
-
```dockerfile
|
|
63
|
-
# BAD - Invalidates cache on any change
|
|
64
|
-
COPY . .
|
|
65
|
-
RUN bun install
|
|
66
|
-
|
|
67
|
-
# GOOD - Cache dependencies separately
|
|
68
|
-
COPY package.json bun.lockb ./
|
|
69
|
-
RUN bun install --frozen-lockfile
|
|
70
|
-
COPY . .
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### 2. Multi-Stage Builds
|
|
74
|
-
|
|
75
|
-
```dockerfile
|
|
76
|
-
# Stage 1: Build
|
|
77
|
-
FROM oven/bun:1 AS builder
|
|
78
|
-
# Build steps...
|
|
79
|
-
|
|
80
|
-
# Stage 2: Production (slim)
|
|
81
|
-
FROM oven/bun:1-slim AS production
|
|
82
|
-
COPY --from=builder /app/dist ./dist
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### 3. Minimize Layers
|
|
86
|
-
|
|
87
|
-
```dockerfile
|
|
88
|
-
# BAD - Multiple layers
|
|
89
|
-
RUN apt-get update
|
|
90
|
-
RUN apt-get install -y curl
|
|
91
|
-
RUN apt-get clean
|
|
92
|
-
|
|
93
|
-
# GOOD - Single layer
|
|
94
|
-
RUN apt-get update && \
|
|
95
|
-
apt-get install -y --no-install-recommends curl && \
|
|
96
|
-
apt-get clean && \
|
|
97
|
-
rm -rf /var/lib/apt/lists/*
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
### 4. Use .dockerignore
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
-
# .dockerignore
|
|
104
|
-
node_modules
|
|
105
|
-
dist
|
|
106
|
-
.git
|
|
107
|
-
.env
|
|
108
|
-
*.md
|
|
109
|
-
tests/
|
|
110
|
-
coverage/
|
|
111
|
-
.claude/
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### 5. Non-Root User
|
|
115
|
-
|
|
116
|
-
```dockerfile
|
|
117
|
-
# Create and use non-root user
|
|
118
|
-
RUN addgroup --system --gid 1001 nodejs && \
|
|
119
|
-
adduser --system --uid 1001 bun
|
|
120
|
-
|
|
121
|
-
USER bun
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
## Size Analysis
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
# Check image size
|
|
128
|
-
docker images | grep myapp
|
|
129
|
-
|
|
130
|
-
# Analyze layers
|
|
131
|
-
docker history myapp:latest
|
|
132
|
-
|
|
133
|
-
# Deep dive
|
|
134
|
-
docker run --rm -it wagoodman/dive myapp:latest
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
## Security Best Practices
|
|
138
|
-
|
|
139
|
-
```dockerfile
|
|
140
|
-
# 1. Use specific versions
|
|
141
|
-
FROM oven/bun:1.0.25-slim
|
|
142
|
-
|
|
143
|
-
# 2. Don't run as root
|
|
144
|
-
USER bun
|
|
145
|
-
|
|
146
|
-
# 3. Don't expose secrets
|
|
147
|
-
# Use docker secrets or env vars at runtime
|
|
148
|
-
|
|
149
|
-
# 4. Scan for vulnerabilities
|
|
150
|
-
# docker scan myapp:latest
|
|
151
|
-
|
|
152
|
-
# 5. Read-only filesystem
|
|
153
|
-
# docker run --read-only myapp
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
## Output Format
|
|
157
|
-
|
|
158
|
-
```markdown
|
|
159
|
-
## Dockerfile Optimization
|
|
160
|
-
|
|
161
|
-
### Current Issues
|
|
162
|
-
|
|
163
|
-
| Issue | Impact | Fix |
|
|
164
|
-
| ---------------- | ------------- | -------------------- |
|
|
165
|
-
| No multi-stage | Large image | Add builder stage |
|
|
166
|
-
| Running as root | Security risk | Add USER directive |
|
|
167
|
-
| No .dockerignore | Slow builds | Create .dockerignore |
|
|
168
|
-
|
|
169
|
-
### Optimized Dockerfile
|
|
170
|
-
|
|
171
|
-
\`\`\`dockerfile
|
|
172
|
-
[Optimized dockerfile content]
|
|
173
|
-
\`\`\`
|
|
174
|
-
|
|
175
|
-
### Size Comparison
|
|
176
|
-
|
|
177
|
-
- Before: [size]
|
|
178
|
-
- After: [size]
|
|
179
|
-
- Reduction: [percentage]
|
|
180
|
-
|
|
181
|
-
### Build Time
|
|
182
|
-
|
|
183
|
-
- Before: [time]
|
|
184
|
-
- After: [time]
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
## Validation
|
|
188
|
-
|
|
189
|
-
```bash
|
|
190
|
-
# Build and test
|
|
191
|
-
docker build -t myapp:optimized .
|
|
192
|
-
|
|
193
|
-
# Check size
|
|
194
|
-
docker images myapp:optimized
|
|
195
|
-
|
|
196
|
-
# Test health check
|
|
197
|
-
docker run -d --name test myapp:optimized
|
|
198
|
-
docker exec test curl -f http://localhost:3000/health
|
|
199
|
-
docker rm -f test
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
## Critical Rules
|
|
203
|
-
|
|
204
|
-
1. **MULTI-STAGE** - Always use for smaller images
|
|
205
|
-
2. **CACHE LAYERS** - Dependencies first, code last
|
|
206
|
-
3. **SLIM IMAGES** - Use -slim or -alpine variants
|
|
207
|
-
4. **NON-ROOT** - Never run as root in production
|
|
208
|
-
5. **.DOCKERIGNORE** - Exclude unnecessary files
|
|
1
|
+
---
|
|
2
|
+
name: dockerfile-optimizer
|
|
3
|
+
description: 'AUTOMATICALLY invoke when creating or modifying Dockerfile. Triggers: new Dockerfile, docker build slow, large image size. Optimizes for size and speed. PROACTIVELY creates efficient multi-stage builds.'
|
|
4
|
+
model: haiku
|
|
5
|
+
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
+
skills: docker-patterns
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Dockerfile Optimizer Agent
|
|
10
|
+
|
|
11
|
+
You optimize Dockerfiles for size, speed, and security.
|
|
12
|
+
|
|
13
|
+
## Bun + TypeScript Dockerfile Template
|
|
14
|
+
|
|
15
|
+
```dockerfile
|
|
16
|
+
# Build stage
|
|
17
|
+
FROM oven/bun:1 AS builder
|
|
18
|
+
|
|
19
|
+
WORKDIR /app
|
|
20
|
+
|
|
21
|
+
# Copy dependency files
|
|
22
|
+
COPY package.json bun.lockb ./
|
|
23
|
+
|
|
24
|
+
# Install dependencies
|
|
25
|
+
RUN bun install --frozen-lockfile
|
|
26
|
+
|
|
27
|
+
# Copy source
|
|
28
|
+
COPY . .
|
|
29
|
+
|
|
30
|
+
# Build (if applicable)
|
|
31
|
+
RUN bun run build
|
|
32
|
+
|
|
33
|
+
# Production stage
|
|
34
|
+
FROM oven/bun:1-slim AS production
|
|
35
|
+
|
|
36
|
+
WORKDIR /app
|
|
37
|
+
|
|
38
|
+
# Copy built assets and dependencies
|
|
39
|
+
COPY --from=builder /app/dist ./dist
|
|
40
|
+
COPY --from=builder /app/node_modules ./node_modules
|
|
41
|
+
COPY --from=builder /app/package.json ./
|
|
42
|
+
|
|
43
|
+
# Non-root user
|
|
44
|
+
USER bun
|
|
45
|
+
|
|
46
|
+
# Environment
|
|
47
|
+
ENV NODE_ENV=production
|
|
48
|
+
|
|
49
|
+
# Health check
|
|
50
|
+
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
|
51
|
+
CMD curl -f http://localhost:3000/health || exit 1
|
|
52
|
+
|
|
53
|
+
EXPOSE 3000
|
|
54
|
+
|
|
55
|
+
CMD ["bun", "run", "dist/index.js"]
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Optimization Techniques
|
|
59
|
+
|
|
60
|
+
### 1. Layer Caching
|
|
61
|
+
|
|
62
|
+
```dockerfile
|
|
63
|
+
# BAD - Invalidates cache on any change
|
|
64
|
+
COPY . .
|
|
65
|
+
RUN bun install
|
|
66
|
+
|
|
67
|
+
# GOOD - Cache dependencies separately
|
|
68
|
+
COPY package.json bun.lockb ./
|
|
69
|
+
RUN bun install --frozen-lockfile
|
|
70
|
+
COPY . .
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 2. Multi-Stage Builds
|
|
74
|
+
|
|
75
|
+
```dockerfile
|
|
76
|
+
# Stage 1: Build
|
|
77
|
+
FROM oven/bun:1 AS builder
|
|
78
|
+
# Build steps...
|
|
79
|
+
|
|
80
|
+
# Stage 2: Production (slim)
|
|
81
|
+
FROM oven/bun:1-slim AS production
|
|
82
|
+
COPY --from=builder /app/dist ./dist
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 3. Minimize Layers
|
|
86
|
+
|
|
87
|
+
```dockerfile
|
|
88
|
+
# BAD - Multiple layers
|
|
89
|
+
RUN apt-get update
|
|
90
|
+
RUN apt-get install -y curl
|
|
91
|
+
RUN apt-get clean
|
|
92
|
+
|
|
93
|
+
# GOOD - Single layer
|
|
94
|
+
RUN apt-get update && \
|
|
95
|
+
apt-get install -y --no-install-recommends curl && \
|
|
96
|
+
apt-get clean && \
|
|
97
|
+
rm -rf /var/lib/apt/lists/*
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 4. Use .dockerignore
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
# .dockerignore
|
|
104
|
+
node_modules
|
|
105
|
+
dist
|
|
106
|
+
.git
|
|
107
|
+
.env
|
|
108
|
+
*.md
|
|
109
|
+
tests/
|
|
110
|
+
coverage/
|
|
111
|
+
.claude/
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 5. Non-Root User
|
|
115
|
+
|
|
116
|
+
```dockerfile
|
|
117
|
+
# Create and use non-root user
|
|
118
|
+
RUN addgroup --system --gid 1001 nodejs && \
|
|
119
|
+
adduser --system --uid 1001 bun
|
|
120
|
+
|
|
121
|
+
USER bun
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Size Analysis
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# Check image size
|
|
128
|
+
docker images | grep myapp
|
|
129
|
+
|
|
130
|
+
# Analyze layers
|
|
131
|
+
docker history myapp:latest
|
|
132
|
+
|
|
133
|
+
# Deep dive
|
|
134
|
+
docker run --rm -it wagoodman/dive myapp:latest
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Security Best Practices
|
|
138
|
+
|
|
139
|
+
```dockerfile
|
|
140
|
+
# 1. Use specific versions
|
|
141
|
+
FROM oven/bun:1.0.25-slim
|
|
142
|
+
|
|
143
|
+
# 2. Don't run as root
|
|
144
|
+
USER bun
|
|
145
|
+
|
|
146
|
+
# 3. Don't expose secrets
|
|
147
|
+
# Use docker secrets or env vars at runtime
|
|
148
|
+
|
|
149
|
+
# 4. Scan for vulnerabilities
|
|
150
|
+
# docker scan myapp:latest
|
|
151
|
+
|
|
152
|
+
# 5. Read-only filesystem
|
|
153
|
+
# docker run --read-only myapp
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Output Format
|
|
157
|
+
|
|
158
|
+
```markdown
|
|
159
|
+
## Dockerfile Optimization
|
|
160
|
+
|
|
161
|
+
### Current Issues
|
|
162
|
+
|
|
163
|
+
| Issue | Impact | Fix |
|
|
164
|
+
| ---------------- | ------------- | -------------------- |
|
|
165
|
+
| No multi-stage | Large image | Add builder stage |
|
|
166
|
+
| Running as root | Security risk | Add USER directive |
|
|
167
|
+
| No .dockerignore | Slow builds | Create .dockerignore |
|
|
168
|
+
|
|
169
|
+
### Optimized Dockerfile
|
|
170
|
+
|
|
171
|
+
\`\`\`dockerfile
|
|
172
|
+
[Optimized dockerfile content]
|
|
173
|
+
\`\`\`
|
|
174
|
+
|
|
175
|
+
### Size Comparison
|
|
176
|
+
|
|
177
|
+
- Before: [size]
|
|
178
|
+
- After: [size]
|
|
179
|
+
- Reduction: [percentage]
|
|
180
|
+
|
|
181
|
+
### Build Time
|
|
182
|
+
|
|
183
|
+
- Before: [time]
|
|
184
|
+
- After: [time]
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Validation
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
# Build and test
|
|
191
|
+
docker build -t myapp:optimized .
|
|
192
|
+
|
|
193
|
+
# Check size
|
|
194
|
+
docker images myapp:optimized
|
|
195
|
+
|
|
196
|
+
# Test health check
|
|
197
|
+
docker run -d --name test myapp:optimized
|
|
198
|
+
docker exec test curl -f http://localhost:3000/health
|
|
199
|
+
docker rm -f test
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## Critical Rules
|
|
203
|
+
|
|
204
|
+
1. **MULTI-STAGE** - Always use for smaller images
|
|
205
|
+
2. **CACHE LAYERS** - Dependencies first, code last
|
|
206
|
+
3. **SLIM IMAGES** - Use -slim or -alpine variants
|
|
207
|
+
4. **NON-ROOT** - Never run as root in production
|
|
208
|
+
5. **.DOCKERIGNORE** - Exclude unnecessary files
|