Docker Compose Create
Generate docker-compose.yml for multi-service applications
- Type
- Slash Command
- Repository
- jeremylongshore/tons-of-skills-marketplace
- GitHub stars
- 2.8k
- License
- MIT
- Repo last updated
- Sep 27, 2026
What Docker Compose Create is
Docker Compose Create is a slash command published in the jeremylongshore/tons-of-skills-marketplace repository on GitHub, which has about 2.8k stars. The repository describes itself as: “Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.”
A slash command is a reusable prompt saved as a markdown file and run by typing its name after a slash. In Claude Code, custom commands have been merged into skills: a file in .claude/commands/ and a skill folder in .claude/skills/ both create the same kind of command, and existing command files keep working.
Docker Compose Create gives you a repeatable way to run the same instructions without retyping them, optionally with arguments.
How to install Docker Compose Create
Claude Code
- Download docker-compose-create.md from the repository.
- Save it to ~/.claude/commands/ (all projects) or .claude/commands/ (one project). As a skill, you can instead save it as ~/.claude/skills/<name>/SKILL.md.
- Run it by typing / followed by its name.
Claude Cowork
- Turn the command into a skill: create a folder with the file saved as SKILL.md and zip it.
- In Customize → Skills, click +, then upload the ZIP.
- Run it from any task with / and the skill name.
New to extending Cowork? Our plugins guide and Customize guide explain how skills, plugins, and connectors fit together.
Inside the source file
An excerpt from plugins/packages/devops-automation-pack/plugins/03-docker/commands/docker-compose-create.md, shared under the repository's MIT license. Read the full file on GitHub.
Creates production-ready docker-compose.yml files for multi-service applications with proper networking, volumes, health checks, and environment management.
When to Use This
- Multi-service application (app + database + cache)
- Microservices architecture
- Local development environment setup
- Full-stack applications (frontend + backend + DB)
- Single container app (use /dockerfile-generate instead)
How It Works
You are a Docker Compose expert. When user runs /docker-compose-create or /dcc:
- Identify services: Ask user to specify:
- Application services (API, frontend, worker)
- Database services (PostgreSQL, MySQL, MongoDB)
- Cache/queue services (Redis, RabbitMQ)
- Other services (Nginx, proxy, etc.)
- Determine requirements:
- Persistent data needs (databases)
- Inter-service communication (networks)
- Environment variables (secrets, config)
- Port mappings
- Health checks and dependencies
- Generate docker-compose.yml:
- Service definitions with proper images
- Named volumes for persistence
- Custom networks for isolation
- Environment variable management
- Health checks and restart policies
- Service dependencies (depends_on)
- Create .env template:
- Environment variables template
- Secrets placeholders
- Configuration defaults
- Provide usage instructions:
- How to start services
- How to stop services
- How to view logs
- How to rebuild images
Output Format
# docker-compose.yml
[Complete compose file with comments]# .env.example
[Environment variables template]## Usage
### Start all services:docker-compose up -d
### View logs:docker-compose logs -f [service-name]
### Stop all services:docker-compose down
### Rebuild and restart:docker-compose up -d --build
Examples
Example 1: Node.js API + PostgreSQL + Redis
User: /dcc
Services specified:
- Node.js API (port 3000)
- PostgreSQL database
- Redis cache
Output:
# docker-compose.yml
version: '3.8'
services:
# Node.js API service
api:
build:
context: .
dockerfile: Dockerfile
container_name: api
restart: unless-stopped
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}
- REDIS_URL=redis://redis:6379
depends_on:
…# .env.example
# Copy this file to .env and fill in your values
# PostgreSQL Configuration
POSTGRES_DB=myapp
POSTGRES_USER=postgres
POSTGRES_PASSWORD=your_secure_password_here
# Redis Configuration
REDIS_PASSWORD=your_redis_password_here
# Application Configuration
NODE_ENV=productionExample 2: Full-Stack (React + Express + MongoDB)
User: /dcc
Services specified:
- React frontend (port 80)
- Express backend (port 5000)
- MongoDB database
Output:
# docker-compose.yml
version: '3.8'
services:
# React frontend
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: frontend
restart: unless-stopped
ports:
- "80:80"
environment:
- REACT_APP_API_URL=http://localhost:5000
depends_on:
- backend
networks:
…# .env.example
# MongoDB Configuration
MONGO_USER=admin
MONGO_PASSWORD=your_secure_password_here
MONGO_DB=myapp
# Backend Configuration
JWT_SECRET=your_jwt_secret_here
NODE_ENV=production
# Frontend Configuration
REACT_APP_API_URL=http://localhost:5000Example 3: Microservices (API Gateway + 3 Services + Postgres)
User: /dcc
Services specified:
- Nginx API Gateway
- User Service (port 3001)
- Product Service (port 3002)
- Order Service (port 3003)
- PostgreSQL (shared database)
Output:
# docker-compose.yml
version: '3.8'
services:
# Nginx API Gateway
gateway:
image: nginx:alpine
container_name: api-gateway
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- user-service
- product-service
- order-service
networks:
…# .env.example
# Database Configuration
POSTGRES_PASSWORD=your_secure_password_herePro Tips
Use health checks to ensure services start in correct order Named volumes persist data across container restarts Custom networks isolate services from other containers Always use .env files (never commit secrets) Service names become DNS hostnames (e.g., db, redis)
Common Service Configurations
PostgreSQL:
db:
image: postgres:15-alpine
environment:
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
interval: 10s
timeout: 5s
retries: 5MySQL:
db:
image: mysql:8
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
volumes:
- mysql-data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5Redis:
redis:
image: redis:7-alpine
command: redis-server --requirepass ${REDIS_PASSWORD}
volumes:
- redis-data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 5 Before you install
- Read the whole file first. Skills, commands, and subagents are instructions Claude will follow, so make sure they match what you want.
- Check which tools, scripts, or MCP servers it uses. Local servers and scripts run with your permissions.
- Try it in a test project or a copy of your files before pointing it at real work.
- Pin the version you tested, and review changes before updating.
- Watch for instructions that fetch web content or run shell commands; those are where prompt injection risks start. See our prompt injection guide.
FAQ
What is Docker Compose Create?
Docker Compose Create is a slash command for Claude Code and Claude Cowork from the jeremylongshore/tons-of-skills-marketplace repository on GitHub. Generate docker-compose.yml for multi-service applications
How do I install Docker Compose Create in Claude Code?
Download docker-compose-create.md from the repository. Save it to ~/.claude/commands/ (all projects) or .claude/commands/ (one project). As a skill, you can instead save it as ~/.claude/skills/<name>/SKILL.md. Run it by typing / followed by its name.
Can I use Docker Compose Create in Claude Cowork?
Turn the command into a skill: create a folder with the file saved as SKILL.md and zip it. In Customize → Skills, click +, then upload the ZIP. Run it from any task with / and the skill name.
Is Docker Compose Create safe to install?
It is a third-party community resource, not reviewed by Anthropic or this site. Read the source file first, check which tools and connectors it uses, and install only from sources you trust.
Similar resources
- Fairdb Health Check Comprehensive health check for FairDB PostgreSQL infrastructure Slash Command · jeremylongshore/tons-of-skills-marketplace
- Fairdb Ops Manager Comprehensive operations manager for FairDB managed PostgreSQL service - SOPs, incident response, monitoring, and automation Plugin · jeremylongshore/tons-of-skills-marketplace
- Fairdb Setup Wizard Guides users step-by-step through three-phase FairDB provisioning — VPS hardening, PostgreSQL 16 installation, and pgBackRest backup configuration — on a fresh Ubuntu 24.04 VPS. Use when setting up a new FairDB server from scratch. Trigger with "set up FairDB", "provision a new database server". Subagent · jeremylongshore/tons-of-skills-marketplace
- Fairdb Setup Backup Configure pgBackRest with Wasabi S3 for automated PostgreSQL backups Slash Command · jeremylongshore/tons-of-skills-marketplace
- Docker Optimize Analyze and optimize Docker images for size and build speed Slash Command · jeremylongshore/tons-of-skills-marketplace
- Detect Bottlenecks Detect performance bottlenecks in application Slash Command · jeremylongshore/tons-of-skills-marketplace
- Docker Security Scan Scans Docker containers and images for security vulnerabilities Slash Command · jeremylongshore/tons-of-skills-marketplace
- Design Schema Design database schemas with best practices Slash Command · jeremylongshore/tons-of-skills-marketplace