docker-development
This skill should be used when the user asks to "analyze a Dockerfile", "optimize Docker layers", "validate docker-compose", "check container best practices", or "audit Docker configurations".
What this skill does
# Docker Development
> **Category:** Engineering
> **Domain:** Container Development & Optimization
## Overview
The **Docker Development** skill provides automated analysis of Dockerfiles and docker-compose configurations. It identifies layer optimization opportunities, security issues, best practice violations, and compose service misconfigurations. Use this skill to enforce container standards across your team and catch issues before they reach production.
## Quick Start
```bash
# Analyze a Dockerfile for best practices
python scripts/dockerfile_analyzer.py --file Dockerfile
# Analyze with JSON output
python scripts/dockerfile_analyzer.py --file Dockerfile --format json
# Validate a docker-compose file
python scripts/compose_validator.py --file docker-compose.yml
# Check for port conflicts across compose files
python scripts/compose_validator.py --file docker-compose.yml --check-ports
```
## Tools Overview
### dockerfile_analyzer.py
Analyzes Dockerfiles for best practices, security issues, and optimization opportunities.
| Feature | Description |
|---------|-------------|
| Layer optimization | Detects unnecessary layers, recommends combining RUN statements |
| Multi-stage analysis | Validates multi-stage build patterns and final image size |
| Security scanning | Flags running as root, use of latest tags, exposed secrets |
| Base image checks | Recommends smaller base images (alpine, distroless, slim) |
| Cache optimization | Identifies poor layer ordering that breaks Docker cache |
```bash
# Full analysis
python scripts/dockerfile_analyzer.py --file Dockerfile
# Security-focused scan
python scripts/dockerfile_analyzer.py --file Dockerfile --security-only
# JSON output for CI integration
python scripts/dockerfile_analyzer.py --file Dockerfile --format json
```
### compose_validator.py
Validates docker-compose files for correctness, dependency issues, and port conflicts.
| Feature | Description |
|---------|-------------|
| Schema validation | Checks compose file structure and syntax |
| Dependency graph | Validates depends_on chains for circular dependencies |
| Port conflict detection | Identifies duplicate host port bindings |
| Volume mount checks | Validates volume paths and mount configurations |
| Network analysis | Checks network definitions and service connectivity |
```bash
# Full validation
python scripts/compose_validator.py --file docker-compose.yml
# Check port conflicts only
python scripts/compose_validator.py --file docker-compose.yml --check-ports
# JSON output
python scripts/compose_validator.py --file docker-compose.yml --format json
```
## Workflows
### Dockerfile Review Workflow
1. **Analyze** - Run dockerfile_analyzer.py against the target Dockerfile
2. **Review findings** - Address critical security issues first (root user, secrets)
3. **Optimize layers** - Combine RUN statements, reorder for cache efficiency
4. **Validate base images** - Switch to minimal base images where possible
5. **Re-analyze** - Confirm improvements and verify no regressions
### Compose Validation Workflow
1. **Validate structure** - Run compose_validator.py for syntax and schema checks
2. **Check dependencies** - Review service dependency graph for circular refs
3. **Audit ports** - Ensure no host port conflicts across services
4. **Review volumes** - Confirm volume mounts are correct and necessary
5. **Network review** - Verify service isolation and connectivity
### CI Integration Workflow
```yaml
# Example GitHub Actions step
- name: Docker Lint
run: |
python scripts/dockerfile_analyzer.py --file Dockerfile --format json > results.json
python scripts/compose_validator.py --file docker-compose.yml --format json >> results.json
```
## Reference Documentation
- [Docker Best Practices](references/docker-best-practices.md) - Comprehensive guide to Dockerfile and Compose patterns
## Common Patterns Quick Reference
| Pattern | Good | Bad |
|---------|------|-----|
| Base image | `FROM python:3.12-slim` | `FROM python:latest` |
| User | `USER appuser` | Running as root |
| Layer combining | `RUN apt-get update && apt-get install -y pkg` | Separate RUN for update and install |
| COPY ordering | Copy requirements first, then code | Copy everything at once |
| Multi-stage | Use builder stage + minimal runtime | Single stage with build tools |
| Secrets | Use build secrets or env at runtime | `COPY .env .` or `ENV SECRET=value` |
| Health checks | `HEALTHCHECK CMD curl -f http://localhost/` | No health check defined |
| .dockerignore | Include node_modules, .git, etc. | No .dockerignore file |
### Compose Patterns
| Pattern | Good | Bad |
|---------|------|-----|
| Restart policy | `restart: unless-stopped` | No restart policy |
| Resource limits | `deploy.resources.limits` set | Unlimited resources |
| Named volumes | `volumes: [db-data:/var/lib/postgresql]` | Anonymous volumes |
| Networks | Explicit network definitions | Default bridge only |
| Environment | `env_file: .env` | Inline secrets in compose |
Related in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.