DevOps essentials — Dockerfile best practices, CI/CD patterns, deployment configuration, and container security
89
87%
Does it follow best practices?
Impact
100%
1.21xAverage score across 3 eval scenarios
Passed
No known issues
Multi-stage build for backend
100%
100%
Multi-stage build for frontend
100%
100%
Non-root user in at least one Dockerfile
0%
100%
.dockerignore file(s) created
100%
100%
Environment variables not hardcoded in docker-compose
83%
100%
Health checks in docker-compose
100%
100%
depends_on with health condition
100%
100%
Persistent volume for PostgreSQL
100%
100%
Specific base image tags
100%
100%
Cache-efficient layer ordering
100%
100%
HEALTHCHECK in Dockerfile
0%
100%
.env.example or documentation of required env vars
0%
100%
Multi-stage build
100%
100%
Non-root user
66%
100%
.dockerignore file created
100%
100%
Cache-efficient layer ordering
100%
100%
HEALTHCHECK instruction
0%
100%
Specific base image tag
100%
100%
Alpine or slim base image
100%
100%
npm ci instead of npm install
100%
100%
NODE_ENV set to production
100%
100%
EXPOSE instruction present
100%
100%
WORKDIR set
100%
100%
Separate jobs or stages for lint, test, and deploy
100%
100%
Deploy depends on test passing
100%
100%
Dependency caching
0%
100%
Secrets not hardcoded
100%
100%
Deploy only on main branch
100%
100%
Lint and type-check as gates
100%
100%
Python version specified
100%
100%
Uses actions/checkout
100%
100%
Dependencies installed via requirements.txt
100%
100%
Correct trigger configuration
100%
100%