Agent skill

docker-compose

Stars 0
Forks 0

Install this agent skill to your Project

npx add-skill https://github.com/cuba6112/skillfactory/tree/main/skills/docker-compose

SKILL.md

Docker Compose Orchestration

Overview

Docker Compose simplifies the management of multi-container applications. It enables service discovery through internal hostnames and provides mechanisms for environment-specific configurations using profiles.

When to Use

  • Local Development: Spinning up a full stack (frontend, backend, DB) with one command.
  • CI/CD Integration: Running isolated integration tests in containerized environments.
  • Microservices: Orchestrating communication between multiple independent services.

Decision Tree

  1. Do you have services only needed for debugging?
    • YES: Use profiles to keep them optional.
  2. Do you need to hide a database from the public proxy?
    • YES: Create isolated custom networks.
  3. Do you need to connect to a service outside the current YAML file?
    • YES: Use external: true for that network.

Workflows

1. Isolating Internal Services

  1. Define frontend and backend custom networks in the top-level networks key.
  2. Assign the proxy service to the frontend network.
  3. Assign the app service to both frontend and backend.
  4. Assign the db service only to the backend network to isolate it from the proxy.

2. Environment-Specific Overrides with Profiles

  1. Add profiles: [debug] to an optional service (e.g., phpmyadmin) in compose.yaml.
  2. Run docker compose up for standard operations; debug services stay off.
  3. Run docker compose --profile debug up to include the debugging tools.

3. Using Existing External Networks

  1. Declare a network in compose.yaml with external: true.
  2. Link local services to this external network in their networks section.
  3. This allows the Compose stack to communicate with containers managed outside the current project.

Non-Obvious Insights

  • Service Name as Hostname: Within the default network, you don't need IPs; containers connect via service names (e.g., db:5432).
  • IP Persistence: Configurations changes cause containers to get new IPs, but the hostname (service name) remains consistent, which is why service discovery is essential.
  • Implicit Enablement: Services without a profiles attribute are always enabled regardless of which profiles are requested.

Evidence

  • "Each container for a service joins the default network and is... discoverable by the service's name." - Docker Docs
  • "Profiles help you adjust your Compose application for different environments... by selectively activating services." - Docker Docs
  • "Instead of just using the default app network, you can specify your own networks..." - Docker Docs

Scripts

  • scripts/docker-compose_tool.py: Python script to generate dynamic Compose YAML files.
  • scripts/docker-compose_tool.js: Node.js script for checking service connectivity within a network.

Dependencies

  • docker-compose
  • docker engine

References

  • references/README.md

Expand your agent's capabilities with these related and highly-rated skills.

cuba6112/skillfactory

prompt-engineering

Comprehensive prompt engineering techniques for Claude models. Use this skill when crafting, optimizing, or debugging prompts for Claude API, Claude Code, or any Claude-powered application. Covers system prompts, role prompting, multishot examples, chain of thought, XML structuring, long context handling, extended thinking, prompt chaining, Claude 4.x-specific best practices, and agentic orchestration including subagents, agent loops, skills, MCP integration, and multi-agent workflows.

0 0
Explore
cuba6112/skillfactory

adk-rag-agent

Build RAG (Retrieval-Augmented Generation) agents with Google ADK and Vertex AI RAG Engine. Use when implementing document Q&A, knowledge base search, or citation-backed responses. Covers VertexAiRagRetrieval tool, corpus setup, and citation formatting.

0 0
Explore
cuba6112/skillfactory

headless-cli-agents

Build agentic systems using Claude CLI in headless mode or the Claude Agent SDK. Use when building automation pipelines, CI/CD integrations, multi-agent orchestration, or programmatic Claude interactions. Covers CLI flags (-p, --output-format), session management (--resume, --continue), Python SDK (claude-agent-sdk), custom tools, and agent loop patterns.

0 0
Explore
cuba6112/skillfactory

notion-knowledge-capture

Capture conversations and decisions into structured Notion pages; use when turning chats/notes into wiki entries, how-tos, decisions, or FAQs with proper linking.

0 0
Explore
cuba6112/skillfactory

mcp-builder

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

0 0
Explore
cuba6112/skillfactory

gh-fix-ci

Inspect GitHub PR checks with gh, pull failing GitHub Actions logs, summarize failure context, then create a fix plan and implement after user approval. Use when a user asks to debug or fix failing PR CI/CD checks on GitHub Actions and wants a plan + code changes; for external checks (e.g., Buildkite), only report the details URL and mark them out of scope.

0 0
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results