Docker Compose Generator — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Docker Compose Generator (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill directs the agent to gather information about your application stack and produce a production-ready docker-compose.yml file. It includes health checks, named volumes, custom networks, environment variable placeholders, restart policies, and sensible resource limits — all things that are easy to miss when writing a Compose file from scratch.
Use this when bootstrapping a new project, when converting an existing app to run in containers, or when you want a solid starting point to customize from.
Copy this file to .agents/skills/docker-compose-generator/SKILL.md in your project root.
Then ask:
The agent will ask clarifying questions before generating the file if your description is incomplete.
Paste the instructions from the section below into your session along with a description of your stack.
When asked to generate a docker-compose.yml, follow these steps:
restart policy (unless-stopped for production, on-failure for dev)healthcheck for every database or cache service${VAR_NAME} placeholders, never hardcoded valuesdepends_on with condition: service_healthy for services that require a healthy DB before starting./src:/app/src)9229 for Node.js inspector).env.example reminder commentdeploy.resources.limits for memory and CPUread_only: true on containers where the filesystem does not need to be writabledocker-compose.yml in a fenced code block.env.example snippet showing all required variablesInput to Agent:
"Use the Docker Compose Generator skill. I have a Node.js Express API (port 3000), a PostgreSQL 16 database, and a Redis 7 cache. This is for production."
Output from Agent:
# docker-compose.yml
version: '3.9'
services:
api:
build: .
restart: unless-stopped
ports:
- "3000:3000"
environment:
- DATABASE_URL=${DATABASE_URL}
- REDIS_URL=${REDIS_URL}
- NODE_ENV=production
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
networks:
- app-network
deploy:
resources:
limits:
cpus: '1.0'
memory: 512M
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- postgres-data:/var/lib/postgresql/data
networks:
- app-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
restart: unless-stopped
command: redis-server --appendonly yes
volumes:
- redis-data:/data
networks:
- app-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
volumes:
postgres-data:
redis-data:
networks:
app-network:
driver: bridge.env.example
DATABASE_URL=postgresql://user:password@postgres:5432/myapp
REDIS_URL=redis://redis:6379
POSTGRES_DB=myapp
POSTGRES_USER=user
POSTGRES_PASSWORD=changemeNext steps
.env.example to .env and fill in real valuesdocker compose up -d to start all servicesdocker compose logs -f api to tail API logsDockerfile for your application image. It assumes your Dockerfile already exists in the project root, or will ask you to create one.docker-compose.override.yml files for dev and staging. Ask the agent to do this explicitly..env.example before using them in a real environment.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.