javi-forge 1.2.0 → 1.3.0

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.
Files changed (228) hide show
  1. package/ci-local/ci-local.sh +20 -8
  2. package/package.json +1 -1
  3. package/ai-config/.skillignore +0 -15
  4. package/ai-config/AUTO_INVOKE.md +0 -300
  5. package/ai-config/agents/_TEMPLATE.md +0 -93
  6. package/ai-config/agents/business/api-designer.md +0 -1657
  7. package/ai-config/agents/business/business-analyst.md +0 -1331
  8. package/ai-config/agents/business/product-strategist.md +0 -206
  9. package/ai-config/agents/business/project-manager.md +0 -178
  10. package/ai-config/agents/business/requirements-analyst.md +0 -1277
  11. package/ai-config/agents/business/technical-writer.md +0 -1679
  12. package/ai-config/agents/creative/ux-designer.md +0 -205
  13. package/ai-config/agents/data-ai/ai-engineer.md +0 -487
  14. package/ai-config/agents/data-ai/analytics-engineer.md +0 -953
  15. package/ai-config/agents/data-ai/data-engineer.md +0 -173
  16. package/ai-config/agents/data-ai/data-scientist.md +0 -672
  17. package/ai-config/agents/data-ai/mlops-engineer.md +0 -814
  18. package/ai-config/agents/data-ai/prompt-engineer.md +0 -772
  19. package/ai-config/agents/development/angular-expert.md +0 -620
  20. package/ai-config/agents/development/backend-architect.md +0 -795
  21. package/ai-config/agents/development/database-specialist.md +0 -212
  22. package/ai-config/agents/development/frontend-specialist.md +0 -686
  23. package/ai-config/agents/development/fullstack-engineer.md +0 -668
  24. package/ai-config/agents/development/golang-pro.md +0 -338
  25. package/ai-config/agents/development/java-enterprise.md +0 -400
  26. package/ai-config/agents/development/javascript-pro.md +0 -422
  27. package/ai-config/agents/development/nextjs-pro.md +0 -474
  28. package/ai-config/agents/development/python-pro.md +0 -570
  29. package/ai-config/agents/development/react-pro.md +0 -487
  30. package/ai-config/agents/development/rust-pro.md +0 -246
  31. package/ai-config/agents/development/spring-boot-4-expert.md +0 -326
  32. package/ai-config/agents/development/typescript-pro.md +0 -336
  33. package/ai-config/agents/development/vue-specialist.md +0 -605
  34. package/ai-config/agents/infrastructure/cloud-architect.md +0 -472
  35. package/ai-config/agents/infrastructure/deployment-manager.md +0 -358
  36. package/ai-config/agents/infrastructure/devops-engineer.md +0 -455
  37. package/ai-config/agents/infrastructure/incident-responder.md +0 -519
  38. package/ai-config/agents/infrastructure/kubernetes-expert.md +0 -705
  39. package/ai-config/agents/infrastructure/monitoring-specialist.md +0 -674
  40. package/ai-config/agents/infrastructure/performance-engineer.md +0 -658
  41. package/ai-config/agents/orchestrator.md +0 -241
  42. package/ai-config/agents/quality/accessibility-auditor.md +0 -1204
  43. package/ai-config/agents/quality/code-reviewer-compact.md +0 -123
  44. package/ai-config/agents/quality/code-reviewer.md +0 -363
  45. package/ai-config/agents/quality/dependency-manager.md +0 -743
  46. package/ai-config/agents/quality/e2e-test-specialist.md +0 -1005
  47. package/ai-config/agents/quality/performance-tester.md +0 -1086
  48. package/ai-config/agents/quality/security-auditor.md +0 -133
  49. package/ai-config/agents/quality/test-engineer.md +0 -453
  50. package/ai-config/agents/specialists/api-designer.md +0 -87
  51. package/ai-config/agents/specialists/backend-architect.md +0 -73
  52. package/ai-config/agents/specialists/code-reviewer.md +0 -77
  53. package/ai-config/agents/specialists/db-optimizer.md +0 -75
  54. package/ai-config/agents/specialists/devops-engineer.md +0 -83
  55. package/ai-config/agents/specialists/documentation-writer.md +0 -78
  56. package/ai-config/agents/specialists/frontend-developer.md +0 -75
  57. package/ai-config/agents/specialists/performance-analyst.md +0 -82
  58. package/ai-config/agents/specialists/refactor-specialist.md +0 -74
  59. package/ai-config/agents/specialists/security-auditor.md +0 -74
  60. package/ai-config/agents/specialists/test-engineer.md +0 -81
  61. package/ai-config/agents/specialists/ux-consultant.md +0 -76
  62. package/ai-config/agents/specialized/agent-generator.md +0 -1190
  63. package/ai-config/agents/specialized/blockchain-developer.md +0 -149
  64. package/ai-config/agents/specialized/code-migrator.md +0 -892
  65. package/ai-config/agents/specialized/context-manager.md +0 -978
  66. package/ai-config/agents/specialized/documentation-writer.md +0 -1078
  67. package/ai-config/agents/specialized/ecommerce-expert.md +0 -1756
  68. package/ai-config/agents/specialized/embedded-engineer.md +0 -1714
  69. package/ai-config/agents/specialized/error-detective.md +0 -1034
  70. package/ai-config/agents/specialized/fintech-specialist.md +0 -1659
  71. package/ai-config/agents/specialized/freelance-project-planner-v2.md +0 -1988
  72. package/ai-config/agents/specialized/freelance-project-planner-v3.md +0 -2136
  73. package/ai-config/agents/specialized/freelance-project-planner-v4.md +0 -4503
  74. package/ai-config/agents/specialized/freelance-project-planner.md +0 -722
  75. package/ai-config/agents/specialized/game-developer.md +0 -1963
  76. package/ai-config/agents/specialized/healthcare-dev.md +0 -1620
  77. package/ai-config/agents/specialized/mobile-developer.md +0 -188
  78. package/ai-config/agents/specialized/parallel-plan-executor.md +0 -506
  79. package/ai-config/agents/specialized/plan-executor.md +0 -485
  80. package/ai-config/agents/specialized/solo-dev-planner-modular/00-INDEX.md +0 -485
  81. package/ai-config/agents/specialized/solo-dev-planner-modular/01-CORE.md +0 -3493
  82. package/ai-config/agents/specialized/solo-dev-planner-modular/02-SELF-CORRECTION.md +0 -778
  83. package/ai-config/agents/specialized/solo-dev-planner-modular/03-PROGRESSIVE-SETUP.md +0 -918
  84. package/ai-config/agents/specialized/solo-dev-planner-modular/04-DEPLOYMENT.md +0 -1537
  85. package/ai-config/agents/specialized/solo-dev-planner-modular/05-TESTING.md +0 -2633
  86. package/ai-config/agents/specialized/solo-dev-planner-modular/06-OPERATIONS.md +0 -5610
  87. package/ai-config/agents/specialized/solo-dev-planner-modular/INSTALL.md +0 -335
  88. package/ai-config/agents/specialized/solo-dev-planner-modular/QUICK-REFERENCE.txt +0 -215
  89. package/ai-config/agents/specialized/solo-dev-planner-modular/README.md +0 -260
  90. package/ai-config/agents/specialized/solo-dev-planner-modular/START-HERE.md +0 -379
  91. package/ai-config/agents/specialized/solo-dev-planner-modular/WORKFLOW-DIAGRAM.md +0 -355
  92. package/ai-config/agents/specialized/solo-dev-planner-modular/solo-dev-planner.md +0 -279
  93. package/ai-config/agents/specialized/template-writer.md +0 -347
  94. package/ai-config/agents/specialized/test-runner.md +0 -99
  95. package/ai-config/agents/specialized/vibekanban-smart-worker.md +0 -244
  96. package/ai-config/agents/specialized/wave-executor.md +0 -138
  97. package/ai-config/agents/specialized/workflow-optimizer.md +0 -1114
  98. package/ai-config/commands/git/changelog.md +0 -32
  99. package/ai-config/commands/git/ci-local.md +0 -70
  100. package/ai-config/commands/git/commit.md +0 -35
  101. package/ai-config/commands/git/fix-issue.md +0 -23
  102. package/ai-config/commands/git/pr-create.md +0 -42
  103. package/ai-config/commands/git/pr-review.md +0 -50
  104. package/ai-config/commands/git/worktree.md +0 -39
  105. package/ai-config/commands/refactoring/cleanup.md +0 -24
  106. package/ai-config/commands/refactoring/dead-code.md +0 -40
  107. package/ai-config/commands/refactoring/extract.md +0 -31
  108. package/ai-config/commands/testing/e2e.md +0 -30
  109. package/ai-config/commands/testing/tdd.md +0 -36
  110. package/ai-config/commands/testing/test-coverage.md +0 -30
  111. package/ai-config/commands/testing/test-fix.md +0 -24
  112. package/ai-config/commands/workflow/generate-agents-md.md +0 -85
  113. package/ai-config/commands/workflow/planning.md +0 -47
  114. package/ai-config/commands/workflows/compound.md +0 -89
  115. package/ai-config/commands/workflows/diagnose.md +0 -70
  116. package/ai-config/commands/workflows/discover.md +0 -86
  117. package/ai-config/commands/workflows/plan.md +0 -77
  118. package/ai-config/commands/workflows/review.md +0 -78
  119. package/ai-config/commands/workflows/work.md +0 -75
  120. package/ai-config/config.yaml +0 -18
  121. package/ai-config/hooks/_TEMPLATE.md +0 -96
  122. package/ai-config/hooks/block-dangerous-commands.md +0 -75
  123. package/ai-config/hooks/commit-guard.md +0 -90
  124. package/ai-config/hooks/context-loader.md +0 -73
  125. package/ai-config/hooks/improve-prompt.md +0 -91
  126. package/ai-config/hooks/learning-log.md +0 -72
  127. package/ai-config/hooks/model-router.md +0 -86
  128. package/ai-config/hooks/secret-scanner.md +0 -64
  129. package/ai-config/hooks/skill-validator.md +0 -102
  130. package/ai-config/hooks/task-artifact.md +0 -114
  131. package/ai-config/hooks/validate-workflow.md +0 -100
  132. package/ai-config/prompts/base.md +0 -71
  133. package/ai-config/prompts/modes/debug.md +0 -34
  134. package/ai-config/prompts/modes/deploy.md +0 -40
  135. package/ai-config/prompts/modes/research.md +0 -32
  136. package/ai-config/prompts/modes/review.md +0 -33
  137. package/ai-config/prompts/review-policy.md +0 -79
  138. package/ai-config/skills/_TEMPLATE.md +0 -157
  139. package/ai-config/skills/backend/api-gateway/SKILL.md +0 -254
  140. package/ai-config/skills/backend/bff-concepts/SKILL.md +0 -239
  141. package/ai-config/skills/backend/bff-spring/SKILL.md +0 -364
  142. package/ai-config/skills/backend/chi-router/SKILL.md +0 -396
  143. package/ai-config/skills/backend/error-handling/SKILL.md +0 -255
  144. package/ai-config/skills/backend/exceptions-spring/SKILL.md +0 -323
  145. package/ai-config/skills/backend/fastapi/SKILL.md +0 -302
  146. package/ai-config/skills/backend/gateway-spring/SKILL.md +0 -390
  147. package/ai-config/skills/backend/go-backend/SKILL.md +0 -457
  148. package/ai-config/skills/backend/gradle-multimodule/SKILL.md +0 -274
  149. package/ai-config/skills/backend/graphql-concepts/SKILL.md +0 -352
  150. package/ai-config/skills/backend/graphql-spring/SKILL.md +0 -398
  151. package/ai-config/skills/backend/grpc-concepts/SKILL.md +0 -283
  152. package/ai-config/skills/backend/grpc-spring/SKILL.md +0 -445
  153. package/ai-config/skills/backend/jwt-auth/SKILL.md +0 -412
  154. package/ai-config/skills/backend/notifications-concepts/SKILL.md +0 -259
  155. package/ai-config/skills/backend/recommendations-concepts/SKILL.md +0 -261
  156. package/ai-config/skills/backend/search-concepts/SKILL.md +0 -263
  157. package/ai-config/skills/backend/search-spring/SKILL.md +0 -375
  158. package/ai-config/skills/backend/spring-boot-4/SKILL.md +0 -172
  159. package/ai-config/skills/backend/websockets/SKILL.md +0 -532
  160. package/ai-config/skills/data-ai/ai-ml/SKILL.md +0 -423
  161. package/ai-config/skills/data-ai/analytics-concepts/SKILL.md +0 -195
  162. package/ai-config/skills/data-ai/analytics-spring/SKILL.md +0 -340
  163. package/ai-config/skills/data-ai/duckdb-analytics/SKILL.md +0 -440
  164. package/ai-config/skills/data-ai/langchain/SKILL.md +0 -238
  165. package/ai-config/skills/data-ai/mlflow/SKILL.md +0 -302
  166. package/ai-config/skills/data-ai/onnx-inference/SKILL.md +0 -290
  167. package/ai-config/skills/data-ai/powerbi/SKILL.md +0 -352
  168. package/ai-config/skills/data-ai/pytorch/SKILL.md +0 -274
  169. package/ai-config/skills/data-ai/scikit-learn/SKILL.md +0 -321
  170. package/ai-config/skills/data-ai/vector-db/SKILL.md +0 -301
  171. package/ai-config/skills/database/graph-databases/SKILL.md +0 -218
  172. package/ai-config/skills/database/graph-spring/SKILL.md +0 -361
  173. package/ai-config/skills/database/pgx-postgres/SKILL.md +0 -512
  174. package/ai-config/skills/database/redis-cache/SKILL.md +0 -343
  175. package/ai-config/skills/database/sqlite-embedded/SKILL.md +0 -388
  176. package/ai-config/skills/database/timescaledb/SKILL.md +0 -320
  177. package/ai-config/skills/docs/api-documentation/SKILL.md +0 -293
  178. package/ai-config/skills/docs/docs-spring/SKILL.md +0 -377
  179. package/ai-config/skills/docs/mustache-templates/SKILL.md +0 -190
  180. package/ai-config/skills/docs/technical-docs/SKILL.md +0 -447
  181. package/ai-config/skills/frontend/astro-ssr/SKILL.md +0 -441
  182. package/ai-config/skills/frontend/frontend-design/SKILL.md +0 -54
  183. package/ai-config/skills/frontend/frontend-web/SKILL.md +0 -368
  184. package/ai-config/skills/frontend/mantine-ui/SKILL.md +0 -396
  185. package/ai-config/skills/frontend/tanstack-query/SKILL.md +0 -439
  186. package/ai-config/skills/frontend/zod-validation/SKILL.md +0 -417
  187. package/ai-config/skills/frontend/zustand-state/SKILL.md +0 -350
  188. package/ai-config/skills/infrastructure/chaos-engineering/SKILL.md +0 -244
  189. package/ai-config/skills/infrastructure/chaos-spring/SKILL.md +0 -378
  190. package/ai-config/skills/infrastructure/devops-infra/SKILL.md +0 -435
  191. package/ai-config/skills/infrastructure/docker-containers/SKILL.md +0 -420
  192. package/ai-config/skills/infrastructure/kubernetes/SKILL.md +0 -456
  193. package/ai-config/skills/infrastructure/opentelemetry/SKILL.md +0 -546
  194. package/ai-config/skills/infrastructure/traefik-proxy/SKILL.md +0 -474
  195. package/ai-config/skills/infrastructure/woodpecker-ci/SKILL.md +0 -315
  196. package/ai-config/skills/mobile/ionic-capacitor/SKILL.md +0 -504
  197. package/ai-config/skills/mobile/mobile-ionic/SKILL.md +0 -448
  198. package/ai-config/skills/prompt-improver/SKILL.md +0 -125
  199. package/ai-config/skills/quality/ghagga-review/SKILL.md +0 -216
  200. package/ai-config/skills/references/hooks-patterns/SKILL.md +0 -238
  201. package/ai-config/skills/references/mcp-servers/SKILL.md +0 -275
  202. package/ai-config/skills/references/plugins-reference/SKILL.md +0 -110
  203. package/ai-config/skills/references/skills-reference/SKILL.md +0 -420
  204. package/ai-config/skills/references/subagent-templates/SKILL.md +0 -193
  205. package/ai-config/skills/systems-iot/modbus-protocol/SKILL.md +0 -410
  206. package/ai-config/skills/systems-iot/mqtt-rumqttc/SKILL.md +0 -408
  207. package/ai-config/skills/systems-iot/rust-systems/SKILL.md +0 -386
  208. package/ai-config/skills/systems-iot/tokio-async/SKILL.md +0 -324
  209. package/ai-config/skills/testing/playwright-e2e/SKILL.md +0 -289
  210. package/ai-config/skills/testing/testcontainers/SKILL.md +0 -299
  211. package/ai-config/skills/testing/vitest-testing/SKILL.md +0 -381
  212. package/ai-config/skills/workflow/ci-local-guide/SKILL.md +0 -118
  213. package/ai-config/skills/workflow/claude-automation-recommender/SKILL.md +0 -299
  214. package/ai-config/skills/workflow/claude-md-improver/SKILL.md +0 -158
  215. package/ai-config/skills/workflow/finishing-a-development-branch/SKILL.md +0 -117
  216. package/ai-config/skills/workflow/git-github/SKILL.md +0 -334
  217. package/ai-config/skills/workflow/git-github/references/examples.md +0 -160
  218. package/ai-config/skills/workflow/git-workflow/SKILL.md +0 -214
  219. package/ai-config/skills/workflow/ide-plugins/SKILL.md +0 -277
  220. package/ai-config/skills/workflow/ide-plugins-intellij/SKILL.md +0 -401
  221. package/ai-config/skills/workflow/obsidian-brain-workflow/SKILL.md +0 -199
  222. package/ai-config/skills/workflow/using-git-worktrees/SKILL.md +0 -100
  223. package/ai-config/skills/workflow/verification-before-completion/SKILL.md +0 -73
  224. package/ai-config/skills/workflow/wave-workflow/SKILL.md +0 -178
  225. package/schemas/agent.schema.json +0 -34
  226. package/schemas/ai-config.schema.json +0 -28
  227. package/schemas/plugin.schema.json +0 -62
  228. package/schemas/skill.schema.json +0 -44
@@ -1,420 +0,0 @@
1
- ---
2
- name: docker-containers
3
- description: >
4
- Docker containerization patterns with multi-stage builds, Docker Compose, and production best practices.
5
- Trigger: Docker, Dockerfile, docker-compose, container, multi-stage build, containerization
6
- tools:
7
- - Read
8
- - Write
9
- - Bash
10
- metadata:
11
- author: plataforma-industrial
12
- version: "2.0"
13
- tags: [docker, containers, devops, multi-stage, compose]
14
- updated: "2026-02"
15
- ---
16
-
17
- # Docker Containerization
18
-
19
- Production-ready Docker patterns with multi-stage builds and Docker Compose.
20
-
21
- ## Multi-Stage Builds
22
-
23
- ### Go Application
24
-
25
- ```dockerfile
26
- FROM golang:1.22-alpine AS builder
27
-
28
- WORKDIR /app
29
-
30
- # Cache dependencies
31
- COPY go.mod go.sum ./
32
- RUN go mod download
33
-
34
- # Build
35
- COPY . .
36
- RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -s" -o /bin/api ./cmd/api
37
-
38
- # Runtime
39
- FROM alpine:3.19
40
-
41
- RUN apk --no-cache add ca-certificates tzdata
42
-
43
- WORKDIR /app
44
- COPY --from=builder /bin/api .
45
- COPY --from=builder /app/migrations ./migrations
46
-
47
- RUN adduser -D -g '' appuser
48
- USER appuser
49
-
50
- EXPOSE 8080
51
- ENTRYPOINT ["./api"]
52
- ```
53
-
54
- ### Rust Application
55
-
56
- ```dockerfile
57
- FROM rust:1.76-slim AS builder
58
-
59
- WORKDIR /app
60
-
61
- RUN apt-get update && apt-get install -y pkg-config libssl-dev && rm -rf /var/lib/apt/lists/*
62
-
63
- # Cache dependencies
64
- RUN cargo new --bin app
65
- WORKDIR /app/app
66
- COPY Cargo.toml Cargo.lock ./
67
- RUN cargo build --release && rm src/*.rs target/release/deps/app*
68
-
69
- # Build
70
- COPY src ./src
71
- RUN cargo build --release
72
-
73
- # Runtime
74
- FROM debian:bookworm-slim
75
-
76
- RUN apt-get update && apt-get install -y ca-certificates libssl3 && rm -rf /var/lib/apt/lists/*
77
-
78
- WORKDIR /app
79
- COPY --from=builder /app/app/target/release/app .
80
-
81
- RUN useradd -r -s /bin/false appuser
82
- USER appuser
83
-
84
- ENTRYPOINT ["./app"]
85
- ```
86
-
87
- ### Python FastAPI
88
-
89
- ```dockerfile
90
- FROM python:3.12-slim AS builder
91
-
92
- WORKDIR /app
93
-
94
- RUN apt-get update && apt-get install -y build-essential && rm -rf /var/lib/apt/lists/*
95
-
96
- COPY requirements.txt .
97
- RUN pip wheel --no-cache-dir --no-deps --wheel-dir /wheels -r requirements.txt
98
-
99
- # Runtime
100
- FROM python:3.12-slim
101
-
102
- WORKDIR /app
103
-
104
- RUN apt-get update && apt-get install -y libpq5 && rm -rf /var/lib/apt/lists/*
105
-
106
- COPY --from=builder /wheels /wheels
107
- RUN pip install --no-cache /wheels/*
108
-
109
- COPY src/ ./src/
110
-
111
- RUN useradd -r -s /bin/false appuser
112
- USER appuser
113
-
114
- ENV PYTHONPATH=/app/src
115
- EXPOSE 8000
116
-
117
- CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
118
- ```
119
-
120
- ### Node.js/Astro
121
-
122
- ```dockerfile
123
- FROM node:20-alpine AS builder
124
-
125
- WORKDIR /app
126
-
127
- COPY package*.json ./
128
- RUN npm ci
129
-
130
- COPY . .
131
- RUN npm run build
132
-
133
- # Runtime
134
- FROM node:20-alpine
135
-
136
- WORKDIR /app
137
-
138
- COPY --from=builder /app/dist ./dist
139
- COPY --from=builder /app/node_modules ./node_modules
140
- COPY package.json ./
141
-
142
- RUN adduser -D appuser
143
- USER appuser
144
-
145
- ENV HOST=0.0.0.0 PORT=4321
146
- EXPOSE 4321
147
-
148
- CMD ["node", "./dist/server/entry.mjs"]
149
- ```
150
-
151
- ## Docker Compose Development
152
-
153
- ```yaml
154
- version: '3.8'
155
-
156
- services:
157
- postgres:
158
- image: postgres:16-alpine
159
- environment:
160
- POSTGRES_USER: app
161
- POSTGRES_PASSWORD: app
162
- POSTGRES_DB: app
163
- ports:
164
- - "5432:5432"
165
- volumes:
166
- - postgres_data:/var/lib/postgresql/data
167
- healthcheck:
168
- test: ["CMD-SHELL", "pg_isready -U app"]
169
- interval: 5s
170
- timeout: 5s
171
- retries: 5
172
-
173
- redis:
174
- image: redis:7-alpine
175
- ports:
176
- - "6379:6379"
177
- volumes:
178
- - redis_data:/data
179
- healthcheck:
180
- test: ["CMD", "redis-cli", "ping"]
181
- interval: 5s
182
- timeout: 3s
183
- retries: 5
184
-
185
- api:
186
- build:
187
- context: ./apps/api
188
- dockerfile: Dockerfile.dev
189
- ports:
190
- - "8080:8080"
191
- environment:
192
- - DATABASE_URL=postgres://app:app@postgres:5432/app
193
- - REDIS_URL=redis://redis:6379
194
- volumes:
195
- - ./apps/api:/app
196
- depends_on:
197
- postgres:
198
- condition: service_healthy
199
- redis:
200
- condition: service_healthy
201
-
202
- web:
203
- build:
204
- context: ./apps/web
205
- dockerfile: Dockerfile.dev
206
- ports:
207
- - "4321:4321"
208
- environment:
209
- - API_URL=http://api:8080
210
- volumes:
211
- - ./apps/web/src:/app/src
212
- depends_on:
213
- - api
214
-
215
- volumes:
216
- postgres_data:
217
- redis_data:
218
- ```
219
-
220
- ## Development Dockerfile (Hot Reload)
221
-
222
- ### Go with Air
223
-
224
- ```dockerfile
225
- FROM golang:1.22-alpine
226
-
227
- WORKDIR /app
228
-
229
- RUN go install github.com/cosmtrek/air@latest
230
-
231
- COPY go.mod go.sum ./
232
- RUN go mod download
233
-
234
- COPY . .
235
-
236
- EXPOSE 8080
237
- CMD ["air", "-c", ".air.toml"]
238
- ```
239
-
240
- ### Python with Reload
241
-
242
- ```dockerfile
243
- FROM python:3.12-slim
244
-
245
- WORKDIR /app
246
-
247
- RUN pip install --no-cache-dir watchfiles
248
-
249
- COPY requirements.txt .
250
- RUN pip install --no-cache-dir -r requirements.txt
251
-
252
- COPY src/ ./src/
253
-
254
- ENV PYTHONPATH=/app/src
255
- EXPOSE 8000
256
-
257
- CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"]
258
- ```
259
-
260
- ## .dockerignore
261
-
262
- ```
263
- .git
264
- .github
265
- .gitignore
266
- .env
267
- .env.*
268
- !.env.example
269
-
270
- **/node_modules
271
- **/dist
272
- **/build
273
- **/__pycache__
274
- **/*.pyc
275
- **/target
276
- **/bin
277
-
278
- .vscode
279
- .idea
280
- *.swp
281
-
282
- **/coverage
283
- **/.pytest_cache
284
-
285
- *.md
286
- !README.md
287
- docs/
288
-
289
- Dockerfile*
290
- docker-compose*
291
- .docker
292
-
293
- *.db
294
- *.sqlite
295
- data/
296
- ```
297
-
298
- ## BuildKit Cache Mounts
299
-
300
- ```dockerfile
301
- # Go with cache mount
302
- FROM golang:1.22-alpine AS builder
303
-
304
- WORKDIR /app
305
-
306
- COPY go.mod go.sum ./
307
- RUN --mount=type=cache,target=/go/pkg/mod go mod download
308
-
309
- COPY . .
310
- RUN --mount=type=cache,target=/go/pkg/mod \
311
- --mount=type=cache,target=/root/.cache/go-build \
312
- CGO_ENABLED=0 go build -o /bin/api ./cmd/api
313
- ```
314
-
315
- ```dockerfile
316
- # Python with cache mount
317
- FROM python:3.12-slim
318
-
319
- WORKDIR /app
320
-
321
- COPY requirements.txt .
322
- RUN --mount=type=cache,target=/root/.cache/pip pip install -r requirements.txt
323
- ```
324
-
325
- ## Multi-Platform Build
326
-
327
- ```dockerfile
328
- FROM --platform=$BUILDPLATFORM golang:1.22-alpine AS builder
329
-
330
- ARG TARGETOS
331
- ARG TARGETARCH
332
-
333
- WORKDIR /app
334
- COPY . .
335
-
336
- RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o /bin/api ./cmd/api
337
- ```
338
-
339
- ```bash
340
- docker buildx build \
341
- --platform linux/amd64,linux/arm64 \
342
- -t ghcr.io/org/api:latest \
343
- --push .
344
- ```
345
-
346
- ## Health Checks
347
-
348
- ```dockerfile
349
- HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
350
- CMD wget -q --spider http://localhost:8080/health || exit 1
351
- ```
352
-
353
- ```yaml
354
- # docker-compose
355
- healthcheck:
356
- test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
357
- interval: 30s
358
- timeout: 10s
359
- retries: 3
360
- start_period: 40s
361
- ```
362
-
363
- ## Secrets Management
364
-
365
- ```yaml
366
- services:
367
- api:
368
- secrets:
369
- - db_password
370
- - jwt_secret
371
- environment:
372
- - DB_PASSWORD_FILE=/run/secrets/db_password
373
- - JWT_SECRET_FILE=/run/secrets/jwt_secret
374
-
375
- secrets:
376
- db_password:
377
- file: ./secrets/db_password.txt
378
- jwt_secret:
379
- file: ./secrets/jwt_secret.txt
380
- ```
381
-
382
- ## Best Practices
383
-
384
- 1. **Use specific versions** - `golang:1.22-alpine` not `golang:latest`
385
- 2. **Non-root user** - Always `USER appuser`
386
- 3. **Multi-stage builds** - Separate build and runtime
387
- 4. **Layer ordering** - Dependencies first (cached), source last
388
- 5. **Minimal base images** - Alpine or distroless
389
- 6. **Health checks** - Always include for orchestration
390
- 7. **BuildKit** - Enable for cache mounts and parallel builds
391
-
392
- ## Common Commands
393
-
394
- ```bash
395
- # Build
396
- docker compose build
397
- docker compose build --no-cache api
398
-
399
- # Run
400
- docker compose up -d
401
- docker compose up -d --build
402
-
403
- # Logs
404
- docker compose logs -f api
405
-
406
- # Shell access
407
- docker compose exec api sh
408
- docker compose exec postgres psql -U app
409
-
410
- # Cleanup
411
- docker system prune -a
412
- docker volume prune
413
- ```
414
-
415
- ## Related Skills
416
-
417
- - `kubernetes`: Orchestration deployment
418
- - `devops-infra`: CI/CD integration
419
- - `traefik-proxy`: Container routing
420
- - `go-backend`: Go container builds