

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
123456## Context78This instruction file applies to Docker and Kubernetes configuration files. All production containers must be non-root, resource-bounded, and include health probes. Container images must be built with minimal attack surface using multi-stage builds.910---1112## Dockerfile Standards1314### Multi-Stage Builds (Required)1516Always use multi-stage builds. Never ship build tools in the runtime image.1718```dockerfile19# Stage 1: Build (JDK)20FROM eclipse-temurin:21-jdk-alpine AS builder21WORKDIR /app22COPY pom.xml .23COPY .mvn .mvn24COPY mvnw .25RUN ./mvnw dependency:go-offline -q26COPY src ./src27RUN ./mvnw package -DskipTests -q2829# Stage 2: Runtime (JRE only — ~150MB vs ~500MB for JDK)30FROM eclipse-temurin:21-jre-alpine31RUN addgroup -S appgroup && adduser -S appuser -G appgroup32WORKDIR /app33COPY --from=builder /app/target/*.jar app.jar34USER appuser35EXPOSE 808036ENTRYPOINT ["java", "-XX:+UseContainerSupport", "-XX:MaxRAMPercentage=75.0", "org.springframework.boot.loader.launch.JarLauncher"]37```3839### Security Rules4041- **Never run as root** — create a non-root user in the Dockerfile42- **Use specific image tags** — never `FROM openjdk:latest`; pin to `eclipse-temurin:21.0.3_9-jre-alpine`43- **Minimal base image** — prefer Alpine variants; consider Distroless for production44- **No secrets in Dockerfile** — never `ARG` or `ENV` for credentials; use runtime secrets injection45- **`.dockerignore`** must exist and exclude: `.git`, `target/`, `node_modules/`, `*.env`, `*.key`4647### JVM Container Flags4849```dockerfile50# CORRECT: Container-aware JVM settings51ENTRYPOINT ["java", \52 "-XX:+UseContainerSupport", \53 "-XX:MaxRAMPercentage=75.0", \54 "-XX:+ExitOnOutOfMemoryError", \55 "-Djava.security.egd=file:/dev/./urandom", \56 "org.springframework.boot.loader.launch.JarLauncher"]57```5859---6061## Kubernetes Manifest Standards6263### Resource Requests and Limits (Required)6465All containers must declare resource requests and limits. No limits = noisy neighbour risk.6667```yaml68resources:69 requests:70 cpu: 250m71 memory: 256Mi72 limits:73 cpu: 500m74 memory: 512Mi75```7677### Liveness and Readiness Probes (Required)7879```yaml80livenessProbe:81 httpGet:82 path: /actuator/health/liveness83 port: 808084 initialDelaySeconds: 3085 periodSeconds: 1086 failureThreshold: 38788readinessProbe:89 httpGet:90 path: /actuator/health/readiness91 port: 808092 initialDelaySeconds: 2093 periodSeconds: 594 failureThreshold: 395```9697### Security Context (Required)9899```yaml100securityContext:101 runAsNonRoot: true102 runAsUser: 1000103 runAsGroup: 1000104 fsGroup: 1000105106containers:107 - securityContext:108 allowPrivilegeEscalation: false109 readOnlyRootFilesystem: true110 capabilities:111 drop: ["ALL"]112```113114### Pod Disruption Budget (Production)115116```yaml117apiVersion: policy/v1118kind: PodDisruptionBudget119metadata:120 name: app-pdb121spec:122 minAvailable: 1123 selector:124 matchLabels:125 app: app-service126```127128---129130## Docker Compose Standards131132- Use named volumes, not bind mounts, for database data directories133- Define `healthcheck` for all services that other services depend on134- Use `depends_on: { condition: service_healthy }` — not just `depends_on`135- Use `.env` file for local variables; never commit credentials in `docker-compose.yml`136137---138139## Image Tagging Strategy140141| Tag Pattern | When to Use |142|-------------|------------|143| `{registry}/{image}:{git-sha}` | CI builds (immutable) |144| `{registry}/{image}:{env}-latest` | Environment-pinned (mutable) |145| `{registry}/{image}:{semver}` | Release artefacts |146147Never deploy `latest` to production — use the git SHA or semver tag.148
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| doubts-suplab/eeik-bootstrap.clinerules/golden-rules.md · 1 | Cline rules | gitsecuritydo-not | 61/100 | today | |
| doubts-suplab/eeik-bootstrap.clinerules/project.md · 1 | Cline rules | teststylegit | 63/100 | today | |
| doubts-suplab/eeik-bootstrap.cursor/rules/architecture.mdc · 1 | Cursor rules | do-not | 52/100 | today | |
| doubts-suplab/eeik-bootstrap.cursor/rules/capabilities.mdc · 1 | Cursor rules | teststylegit | 58/100 | today | |
| doubts-suplab/eeik-bootstrap.cursor/rules/golden-rules.mdc · 1 | Cursor rules | gitsecuritydo-not | 61/100 | today | |
| doubts-suplab/eeik-bootstrap.cursor/rules/python.mdc · 1 | Cursor rules | lint-formatstyletypesapi+1 | 77/100 | today | |
| doubts-suplab/eeik-bootstrap.cursor/rules/security.mdc · 1 | Cursor rules | security | 39/100 | today | |
| doubts-suplab/eeik-bootstrap.github/copilot-instructions.md · 1 | Copilot instructions | lint-formatstyletesting-strategygit+2 | 54/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/a2a-protocol.instructions.md · 1 | Copilot instructions | styleagent-behaviour | 48/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/ai-governance.instructions.md · 1 | Copilot instructions | stylearchdo-notagent-behaviour | 61/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/angular.instructions.md · 1 | Copilot instructions | teststyletypestesting-strategy+4 | 69/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/architecture-governance.instructions.md · 1 | Copilot instructions | testlint-formatstylegit+4 | 65/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/autogen.instructions.md · 1 | Copilot instructions | typessecurityagent-behaviour | 50/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/aws-architecture.instructions.md · 1 | Copilot instructions | styletypessecurityperformance | 58/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/aws-data-ml-ai.instructions.md · 1 | Copilot instructions | deployment | 54/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/cdk-terraform.instructions.md · 1 | Copilot instructions | teststylearchtypes+2 | 96/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/cicd.instructions.md · 1 | Copilot instructions | stylesecuritydeploymentdo-not+1 | 65/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/crewai.instructions.md · 1 | Copilot instructions | styleagent-behaviour | 48/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/data-engineering.instructions.md · 1 | Copilot instructions | teststyletypesgit+5 | 69/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/deployment.instructions.md · 1 | Copilot instructions | teststylegitdeployment | 77/100 | today |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| HerringtonDarkholme/megarepo.github/copilot-instructions.md · 17 | Copilot instructions | setupbuildtestlint-format+7 | 100/100 | 14 days ago | |
| louislam/uptime-kuma.github/copilot-instructions.md · 90k | Copilot instructions | setupbuildtestlint-format+9 | 100/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/global.instructions.md · 65 | Copilot instructions | buildlint-formatstylearch+4 | 100/100 | 14 days ago | |
| pytorch/pytorch.github/copilot-instructions.md · 102k | Copilot instructions | setupbuildteststyle+5 | 100/100 | 14 days ago | |
| JCodesMore/ai-website-cloner-template.github/copilot-instructions.md · 32k | Copilot instructions | buildlint-formatstylearch+3 | 97/100 | 7 days ago | |
| bagisto/bagisto.github/copilot-instructions.md · 28k | Copilot instructions | setupbuildteststyle+5 | 97/100 | 14 days ago | |
| hiyouga/LlamaFactory.github/copilot-instructions.md · 74k | Copilot instructions | setupbuildtestlint-format+5 | 97/100 | 13 days ago | |
| darkmatter/nixmac.github/copilot-instructions.md · 25 | Copilot instructions | setupbuildtestlint-format+8 | 96/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/doubts-suplab-eeik-bootstrap-github-instructions-containerisation-instructions)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.