opencode-skills-collection 4.0.68 → 4.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +266 -1
- package/bundled-skills/access-review/SKILL.md +394 -0
- package/bundled-skills/access-review/references/details.md +121 -0
- package/bundled-skills/agent-evals/SKILL.md +420 -0
- package/bundled-skills/agent-observability/SKILL.md +346 -0
- package/bundled-skills/agent-observability/references/details.md +786 -0
- package/bundled-skills/ai-agent-security/SKILL.md +393 -0
- package/bundled-skills/ai-agent-security/references/details.md +912 -0
- package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
- package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
- package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
- package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
- package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
- package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
- package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
- package/bundled-skills/alerting-oncall/SKILL.md +458 -0
- package/bundled-skills/alerting-oncall/references/details.md +84 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/argocd-gitops/SKILL.md +469 -0
- package/bundled-skills/arm-templates/SKILL.md +438 -0
- package/bundled-skills/arm-templates/references/details.md +64 -0
- package/bundled-skills/asset-inventory/SKILL.md +412 -0
- package/bundled-skills/asset-inventory/references/details.md +127 -0
- package/bundled-skills/audit-logging/SKILL.md +476 -0
- package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
- package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
- package/bundled-skills/aws-ec2/SKILL.md +426 -0
- package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
- package/bundled-skills/aws-iam/SKILL.md +463 -0
- package/bundled-skills/aws-lambda/SKILL.md +428 -0
- package/bundled-skills/aws-rds/SKILL.md +380 -0
- package/bundled-skills/aws-s3/SKILL.md +434 -0
- package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
- package/bundled-skills/aws-vpc/SKILL.md +436 -0
- package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
- package/bundled-skills/azure-aks/SKILL.md +423 -0
- package/bundled-skills/azure-devops/SKILL.md +457 -0
- package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
- package/bundled-skills/azure-keyvault/SKILL.md +455 -0
- package/bundled-skills/azure-keyvault/references/details.md +83 -0
- package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
- package/bundled-skills/azure-networking/SKILL.md +448 -0
- package/bundled-skills/azure-networking/references/details.md +135 -0
- package/bundled-skills/azure-sql/SKILL.md +413 -0
- package/bundled-skills/azure-sql/references/details.md +113 -0
- package/bundled-skills/azure-vms/SKILL.md +402 -0
- package/bundled-skills/azure-vms/references/details.md +134 -0
- package/bundled-skills/backup-recovery/SKILL.md +388 -0
- package/bundled-skills/bb-methodology/SKILL.md +451 -0
- package/bundled-skills/bb-methodology/references/details.md +120 -0
- package/bundled-skills/block-storage/SKILL.md +371 -0
- package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
- package/bundled-skills/blue-green-deploy/references/details.md +90 -0
- package/bundled-skills/bug-bounty/SKILL.md +447 -0
- package/bundled-skills/bug-bounty/references/details.md +1316 -0
- package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
- package/bundled-skills/business-continuity/SKILL.md +463 -0
- package/bundled-skills/career-ops/SKILL.md +186 -0
- package/bundled-skills/cdn-setup/SKILL.md +374 -0
- package/bundled-skills/change-management/SKILL.md +438 -0
- package/bundled-skills/change-management/references/details.md +105 -0
- package/bundled-skills/circleci/SKILL.md +475 -0
- package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
- package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
- package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
- package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
- package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
- package/bundled-skills/cloudformation/SKILL.md +461 -0
- package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
- package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
- package/bundled-skills/container-hardening/SKILL.md +126 -0
- package/bundled-skills/container-registries/SKILL.md +435 -0
- package/bundled-skills/container-scanning/SKILL.md +416 -0
- package/bundled-skills/convex-backend/SKILL.md +338 -0
- package/bundled-skills/dast-scanning/SKILL.md +437 -0
- package/bundled-skills/database-backups/SKILL.md +425 -0
- package/bundled-skills/datadog/SKILL.md +487 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/disaster-recovery/SKILL.md +374 -0
- package/bundled-skills/disaster-recovery/references/details.md +219 -0
- package/bundled-skills/dns-management/SKILL.md +375 -0
- package/bundled-skills/docker-compose/SKILL.md +482 -0
- package/bundled-skills/docker-management/SKILL.md +426 -0
- package/bundled-skills/ebpf-observability/SKILL.md +436 -0
- package/bundled-skills/ebpf-observability/references/details.md +542 -0
- package/bundled-skills/elk-stack/SKILL.md +487 -0
- package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
- package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
- package/bundled-skills/feature-flags/SKILL.md +426 -0
- package/bundled-skills/feature-flags/references/details.md +86 -0
- package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
- package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
- package/bundled-skills/firewall-config/SKILL.md +479 -0
- package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
- package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
- package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
- package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
- package/bundled-skills/gcp-compute/SKILL.md +319 -0
- package/bundled-skills/gcp-gke/SKILL.md +307 -0
- package/bundled-skills/gcp-networking/SKILL.md +293 -0
- package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
- package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
- package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
- package/bundled-skills/gdpr-compliance/references/details.md +145 -0
- package/bundled-skills/geo-audit/SKILL.md +368 -0
- package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
- package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
- package/bundled-skills/geo-citability/SKILL.md +350 -0
- package/bundled-skills/geo-compare/SKILL.md +340 -0
- package/bundled-skills/geo-content/SKILL.md +383 -0
- package/bundled-skills/geo-crawlers/SKILL.md +408 -0
- package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
- package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
- package/bundled-skills/geo-proposal/SKILL.md +378 -0
- package/bundled-skills/geo-prospect/SKILL.md +225 -0
- package/bundled-skills/geo-report/SKILL.md +436 -0
- package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
- package/bundled-skills/geo-schema/SKILL.md +408 -0
- package/bundled-skills/geo-technical/SKILL.md +78 -0
- package/bundled-skills/geo-technical/references/details.md +543 -0
- package/bundled-skills/git-workflow/SKILL.md +460 -0
- package/bundled-skills/github-actions/SKILL.md +368 -0
- package/bundled-skills/gitlab-ci/SKILL.md +340 -0
- package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
- package/bundled-skills/gpu-server-management/SKILL.md +236 -0
- package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
- package/bundled-skills/helm-charts/SKILL.md +469 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
- package/bundled-skills/hunt-ato/SKILL.md +184 -0
- package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
- package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
- package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
- package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
- package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
- package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
- package/bundled-skills/hunt-cicd/SKILL.md +311 -0
- package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
- package/bundled-skills/hunt-cors/SKILL.md +335 -0
- package/bundled-skills/hunt-dom/SKILL.md +323 -0
- package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
- package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
- package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
- package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
- package/bundled-skills/hunt-grpc/SKILL.md +317 -0
- package/bundled-skills/hunt-host-header/SKILL.md +309 -0
- package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
- package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
- package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
- package/bundled-skills/hunt-idor/SKILL.md +434 -0
- package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
- package/bundled-skills/hunt-k8s/SKILL.md +337 -0
- package/bundled-skills/hunt-laravel/SKILL.md +255 -0
- package/bundled-skills/hunt-ldap/SKILL.md +351 -0
- package/bundled-skills/hunt-lfi/SKILL.md +311 -0
- package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
- package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
- package/bundled-skills/hunt-misc/SKILL.md +378 -0
- package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
- package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
- package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
- package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
- package/bundled-skills/hunt-oauth/SKILL.md +459 -0
- package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
- package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
- package/bundled-skills/hunt-race-condition/references/details.md +159 -0
- package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
- package/bundled-skills/hunt-rce/SKILL.md +444 -0
- package/bundled-skills/hunt-rce/references/details.md +110 -0
- package/bundled-skills/hunt-saml/SKILL.md +156 -0
- package/bundled-skills/hunt-session/SKILL.md +342 -0
- package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
- package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
- package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
- package/bundled-skills/hunt-springboot/SKILL.md +285 -0
- package/bundled-skills/hunt-sqli/SKILL.md +466 -0
- package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
- package/bundled-skills/hunt-ssrf/references/details.md +179 -0
- package/bundled-skills/hunt-ssti/SKILL.md +163 -0
- package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
- package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
- package/bundled-skills/hunt-xxe/SKILL.md +466 -0
- package/bundled-skills/i-have-adhd/SKILL.md +170 -0
- package/bundled-skills/identity-access-management/SKILL.md +382 -0
- package/bundled-skills/identity-access-management/references/details.md +524 -0
- package/bundled-skills/incident-management/SKILL.md +484 -0
- package/bundled-skills/incident-response/SKILL.md +448 -0
- package/bundled-skills/incident-response/references/details.md +113 -0
- package/bundled-skills/interview-me/SKILL.md +248 -0
- package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
- package/bundled-skills/jenkins/SKILL.md +462 -0
- package/bundled-skills/jev-use/SKILL.md +158 -0
- package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
- package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
- package/bundled-skills/kubernetes-ops/references/details.md +108 -0
- package/bundled-skills/kustomize/SKILL.md +478 -0
- package/bundled-skills/linux-administration/SKILL.md +367 -0
- package/bundled-skills/linux-hardening/SKILL.md +154 -0
- package/bundled-skills/llm-app-security/SKILL.md +389 -0
- package/bundled-skills/llm-app-security/references/details.md +674 -0
- package/bundled-skills/llm-caching/SKILL.md +334 -0
- package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
- package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
- package/bundled-skills/llm-gateway/SKILL.md +282 -0
- package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
- package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
- package/bundled-skills/load-balancing/SKILL.md +403 -0
- package/bundled-skills/loki-logging/SKILL.md +479 -0
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
- package/bundled-skills/mcp-server-security/SKILL.md +356 -0
- package/bundled-skills/mcp-server-security/references/details.md +745 -0
- package/bundled-skills/mdm-device-management/SKILL.md +404 -0
- package/bundled-skills/mdm-device-management/references/details.md +410 -0
- package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
- package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
- package/bundled-skills/model-registry-governance/SKILL.md +452 -0
- package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
- package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
- package/bundled-skills/mongodb/SKILL.md +436 -0
- package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
- package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
- package/bundled-skills/mysql/SKILL.md +390 -0
- package/bundled-skills/new-relic/SKILL.md +472 -0
- package/bundled-skills/nfs-storage/SKILL.md +356 -0
- package/bundled-skills/object-storage/SKILL.md +378 -0
- package/bundled-skills/offensive-osint/SKILL.md +443 -0
- package/bundled-skills/okta-attack/SKILL.md +436 -0
- package/bundled-skills/ollama-stack/SKILL.md +379 -0
- package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
- package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
- package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
- package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
- package/bundled-skills/openshift/SKILL.md +485 -0
- package/bundled-skills/opentelemetry/SKILL.md +438 -0
- package/bundled-skills/opentelemetry/references/details.md +78 -0
- package/bundled-skills/opentofu-migration/SKILL.md +349 -0
- package/bundled-skills/osint-methodology/SKILL.md +460 -0
- package/bundled-skills/osint-methodology/references/details.md +1350 -0
- package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
- package/bundled-skills/penetration-testing/SKILL.md +152 -0
- package/bundled-skills/performance-tuning/SKILL.md +381 -0
- package/bundled-skills/planetscale/SKILL.md +297 -0
- package/bundled-skills/platform-engineering/SKILL.md +348 -0
- package/bundled-skills/platform-engineering/references/details.md +944 -0
- package/bundled-skills/podman/SKILL.md +405 -0
- package/bundled-skills/policy-as-code/SKILL.md +434 -0
- package/bundled-skills/policy-as-code/references/details.md +204 -0
- package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
- package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
- package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
- package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
- package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
- package/bundled-skills/rag-observability-evals/references/details.md +92 -0
- package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
- package/bundled-skills/redis/SKILL.md +421 -0
- package/bundled-skills/redteam-report-template/SKILL.md +370 -0
- package/bundled-skills/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -0
- package/bundled-skills/reverse-proxy/SKILL.md +420 -0
- package/bundled-skills/runbook-creation/SKILL.md +438 -0
- package/bundled-skills/runbook-creation/references/details.md +71 -0
- package/bundled-skills/saas-security-posture/SKILL.md +415 -0
- package/bundled-skills/sast-scanning/SKILL.md +444 -0
- package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
- package/bundled-skills/security-arsenal/SKILL.md +446 -0
- package/bundled-skills/security-arsenal/references/details.md +540 -0
- package/bundled-skills/security-automation/SKILL.md +146 -0
- package/bundled-skills/semantic-versioning/SKILL.md +434 -0
- package/bundled-skills/semantic-versioning/references/details.md +83 -0
- package/bundled-skills/service-mesh/SKILL.md +422 -0
- package/bundled-skills/soc2-compliance/SKILL.md +409 -0
- package/bundled-skills/sops-encryption/SKILL.md +124 -0
- package/bundled-skills/sre-dashboards/SKILL.md +143 -0
- package/bundled-skills/ssh-configuration/SKILL.md +324 -0
- package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
- package/bundled-skills/ssl-tls-management/references/details.md +99 -0
- package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
- package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
- package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
- package/bundled-skills/systemd-services/SKILL.md +379 -0
- package/bundled-skills/terraform-aws/SKILL.md +125 -0
- package/bundled-skills/terraform-azure/SKILL.md +415 -0
- package/bundled-skills/terraform-azure/references/details.md +231 -0
- package/bundled-skills/terraform-gcp/SKILL.md +369 -0
- package/bundled-skills/threat-modeling/SKILL.md +487 -0
- package/bundled-skills/user-management/SKILL.md +383 -0
- package/bundled-skills/using-agent-skills/SKILL.md +220 -0
- package/bundled-skills/vector-database-ops/SKILL.md +300 -0
- package/bundled-skills/vendor-management/SKILL.md +439 -0
- package/bundled-skills/vendor-management/references/details.md +109 -0
- package/bundled-skills/vercel-deployments/SKILL.md +296 -0
- package/bundled-skills/vllm-server/SKILL.md +236 -0
- package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
- package/bundled-skills/vpn-setup/SKILL.md +452 -0
- package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
- package/bundled-skills/waf-setup/SKILL.md +354 -0
- package/bundled-skills/waf-setup/references/details.md +211 -0
- package/bundled-skills/web2-recon/SKILL.md +440 -0
- package/bundled-skills/web2-recon/references/details.md +319 -0
- package/bundled-skills/web3-audit/SKILL.md +445 -0
- package/bundled-skills/web3-audit/references/details.md +224 -0
- package/bundled-skills/windows-hardening/SKILL.md +454 -0
- package/bundled-skills/windows-hardening/references/details.md +204 -0
- package/bundled-skills/windows-server/SKILL.md +318 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +6943 -323
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: docker-compose
|
|
3
|
+
description: Define and run multi-container Docker applications using Docker Compose.
|
|
4
|
+
category: devops
|
|
5
|
+
risk: critical
|
|
6
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
7
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_type: community
|
|
9
|
+
date_added: '2026-09-20'
|
|
10
|
+
license: MIT
|
|
11
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
12
|
+
compatibility: Requires the relevant platform CLIs (kubectl, helm, terraform, git,
|
|
13
|
+
CI runners) and authorized access to the target environment. Docs-only; helper scripts
|
|
14
|
+
and templates not bundled.
|
|
15
|
+
metadata:
|
|
16
|
+
author: devops-skills
|
|
17
|
+
version: '1.0'
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Docker Compose
|
|
21
|
+
|
|
22
|
+
Orchestrate multi-container applications with declarative YAML configuration.
|
|
23
|
+
|
|
24
|
+
## When to Use This Skill
|
|
25
|
+
|
|
26
|
+
Use this skill when:
|
|
27
|
+
- Running multi-container applications locally
|
|
28
|
+
- Setting up development environments
|
|
29
|
+
- Defining service dependencies and networking
|
|
30
|
+
- Managing application stacks with multiple services
|
|
31
|
+
- Creating reproducible development setups
|
|
32
|
+
|
|
33
|
+
## Prerequisites
|
|
34
|
+
|
|
35
|
+
- Docker Engine with Compose plugin (v2)
|
|
36
|
+
- Basic Docker knowledge
|
|
37
|
+
- YAML syntax understanding
|
|
38
|
+
|
|
39
|
+
## Basic Configuration
|
|
40
|
+
|
|
41
|
+
### Simple Application Stack
|
|
42
|
+
|
|
43
|
+
```yaml
|
|
44
|
+
# docker-compose.yml
|
|
45
|
+
version: '3.8'
|
|
46
|
+
|
|
47
|
+
services:
|
|
48
|
+
web:
|
|
49
|
+
build: .
|
|
50
|
+
ports:
|
|
51
|
+
- "3000:3000"
|
|
52
|
+
environment:
|
|
53
|
+
- NODE_ENV=development
|
|
54
|
+
- DATABASE_URL=postgres://postgres:secret@db:5432/myapp
|
|
55
|
+
depends_on:
|
|
56
|
+
- db
|
|
57
|
+
- redis
|
|
58
|
+
|
|
59
|
+
db:
|
|
60
|
+
image: postgres:15-alpine
|
|
61
|
+
environment:
|
|
62
|
+
POSTGRES_USER: postgres
|
|
63
|
+
POSTGRES_PASSWORD: secret
|
|
64
|
+
POSTGRES_DB: myapp
|
|
65
|
+
volumes:
|
|
66
|
+
- postgres-data:/var/lib/postgresql/data
|
|
67
|
+
ports:
|
|
68
|
+
- "5432:5432"
|
|
69
|
+
|
|
70
|
+
redis:
|
|
71
|
+
image: redis:7-alpine
|
|
72
|
+
ports:
|
|
73
|
+
- "6379:6379"
|
|
74
|
+
|
|
75
|
+
volumes:
|
|
76
|
+
postgres-data:
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Service Configuration
|
|
80
|
+
|
|
81
|
+
### Build Options
|
|
82
|
+
|
|
83
|
+
```yaml
|
|
84
|
+
services:
|
|
85
|
+
app:
|
|
86
|
+
build:
|
|
87
|
+
context: ./app
|
|
88
|
+
dockerfile: Dockerfile.dev
|
|
89
|
+
args:
|
|
90
|
+
NODE_VERSION: "20"
|
|
91
|
+
target: development
|
|
92
|
+
cache_from:
|
|
93
|
+
- myapp:cache
|
|
94
|
+
image: myapp:dev
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Environment Variables
|
|
98
|
+
|
|
99
|
+
```yaml
|
|
100
|
+
services:
|
|
101
|
+
app:
|
|
102
|
+
environment:
|
|
103
|
+
- NODE_ENV=production
|
|
104
|
+
- API_KEY=${API_KEY} # From shell or .env file
|
|
105
|
+
env_file:
|
|
106
|
+
- .env
|
|
107
|
+
- .env.local
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Port Mapping
|
|
111
|
+
|
|
112
|
+
```yaml
|
|
113
|
+
services:
|
|
114
|
+
web:
|
|
115
|
+
ports:
|
|
116
|
+
- "3000:3000" # HOST:CONTAINER
|
|
117
|
+
- "127.0.0.1:9229:9229" # Bind to localhost only
|
|
118
|
+
- "8080-8090:8080-8090" # Port range
|
|
119
|
+
expose:
|
|
120
|
+
- "3000" # Internal only (no host binding)
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Volume Mounts
|
|
124
|
+
|
|
125
|
+
```yaml
|
|
126
|
+
services:
|
|
127
|
+
app:
|
|
128
|
+
volumes:
|
|
129
|
+
# Named volume
|
|
130
|
+
- app-data:/app/data
|
|
131
|
+
# Bind mount
|
|
132
|
+
- ./src:/app/src
|
|
133
|
+
# Read-only bind mount
|
|
134
|
+
- ./config:/app/config:ro
|
|
135
|
+
# Anonymous volume (for node_modules)
|
|
136
|
+
- /app/node_modules
|
|
137
|
+
|
|
138
|
+
volumes:
|
|
139
|
+
app-data:
|
|
140
|
+
driver: local
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Dependencies
|
|
144
|
+
|
|
145
|
+
```yaml
|
|
146
|
+
services:
|
|
147
|
+
web:
|
|
148
|
+
depends_on:
|
|
149
|
+
db:
|
|
150
|
+
condition: service_healthy
|
|
151
|
+
redis:
|
|
152
|
+
condition: service_started
|
|
153
|
+
|
|
154
|
+
db:
|
|
155
|
+
image: postgres:15
|
|
156
|
+
healthcheck:
|
|
157
|
+
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
|
158
|
+
interval: 10s
|
|
159
|
+
timeout: 5s
|
|
160
|
+
retries: 5
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Networking
|
|
164
|
+
|
|
165
|
+
### Custom Networks
|
|
166
|
+
|
|
167
|
+
```yaml
|
|
168
|
+
services:
|
|
169
|
+
frontend:
|
|
170
|
+
networks:
|
|
171
|
+
- frontend-net
|
|
172
|
+
|
|
173
|
+
backend:
|
|
174
|
+
networks:
|
|
175
|
+
- frontend-net
|
|
176
|
+
- backend-net
|
|
177
|
+
|
|
178
|
+
db:
|
|
179
|
+
networks:
|
|
180
|
+
- backend-net
|
|
181
|
+
|
|
182
|
+
networks:
|
|
183
|
+
frontend-net:
|
|
184
|
+
driver: bridge
|
|
185
|
+
backend-net:
|
|
186
|
+
driver: bridge
|
|
187
|
+
internal: true # No external access
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Network Aliases
|
|
191
|
+
|
|
192
|
+
```yaml
|
|
193
|
+
services:
|
|
194
|
+
db:
|
|
195
|
+
networks:
|
|
196
|
+
backend:
|
|
197
|
+
aliases:
|
|
198
|
+
- database
|
|
199
|
+
- postgres
|
|
200
|
+
|
|
201
|
+
networks:
|
|
202
|
+
backend:
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Resource Limits
|
|
206
|
+
|
|
207
|
+
```yaml
|
|
208
|
+
services:
|
|
209
|
+
app:
|
|
210
|
+
deploy:
|
|
211
|
+
resources:
|
|
212
|
+
limits:
|
|
213
|
+
cpus: '2'
|
|
214
|
+
memory: 1G
|
|
215
|
+
reservations:
|
|
216
|
+
cpus: '0.5'
|
|
217
|
+
memory: 256M
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## Multiple Compose Files
|
|
221
|
+
|
|
222
|
+
### Override Files
|
|
223
|
+
|
|
224
|
+
```yaml
|
|
225
|
+
# docker-compose.yml (base)
|
|
226
|
+
services:
|
|
227
|
+
web:
|
|
228
|
+
image: myapp:latest
|
|
229
|
+
ports:
|
|
230
|
+
- "3000:3000"
|
|
231
|
+
|
|
232
|
+
# docker-compose.override.yml (development - auto-loaded)
|
|
233
|
+
services:
|
|
234
|
+
web:
|
|
235
|
+
build: .
|
|
236
|
+
volumes:
|
|
237
|
+
- ./src:/app/src
|
|
238
|
+
environment:
|
|
239
|
+
- DEBUG=true
|
|
240
|
+
|
|
241
|
+
# docker-compose.prod.yml (production)
|
|
242
|
+
services:
|
|
243
|
+
web:
|
|
244
|
+
deploy:
|
|
245
|
+
replicas: 3
|
|
246
|
+
environment:
|
|
247
|
+
- DEBUG=false
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Using Multiple Files
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
# Development (uses override automatically)
|
|
254
|
+
docker compose up
|
|
255
|
+
|
|
256
|
+
# Production
|
|
257
|
+
docker compose -f docker-compose.yml -f docker-compose.prod.yml up
|
|
258
|
+
|
|
259
|
+
# Merge and view final config
|
|
260
|
+
docker compose -f docker-compose.yml -f docker-compose.prod.yml config
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
## Profiles
|
|
264
|
+
|
|
265
|
+
```yaml
|
|
266
|
+
services:
|
|
267
|
+
web:
|
|
268
|
+
image: myapp
|
|
269
|
+
|
|
270
|
+
db:
|
|
271
|
+
image: postgres:15
|
|
272
|
+
|
|
273
|
+
debug:
|
|
274
|
+
image: busybox
|
|
275
|
+
profiles:
|
|
276
|
+
- debug
|
|
277
|
+
|
|
278
|
+
monitoring:
|
|
279
|
+
image: prometheus
|
|
280
|
+
profiles:
|
|
281
|
+
- monitoring
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
# Run without profiles (web, db only)
|
|
286
|
+
docker compose up
|
|
287
|
+
|
|
288
|
+
# Run with debug profile
|
|
289
|
+
docker compose --profile debug up
|
|
290
|
+
|
|
291
|
+
# Run with multiple profiles
|
|
292
|
+
docker compose --profile debug --profile monitoring up
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
## Commands
|
|
296
|
+
|
|
297
|
+
### Lifecycle
|
|
298
|
+
|
|
299
|
+
```bash
|
|
300
|
+
# Start services
|
|
301
|
+
docker compose up -d
|
|
302
|
+
|
|
303
|
+
# Start specific service
|
|
304
|
+
docker compose up -d web
|
|
305
|
+
|
|
306
|
+
# Stop services
|
|
307
|
+
docker compose stop
|
|
308
|
+
|
|
309
|
+
# Stop and remove containers
|
|
310
|
+
docker compose down
|
|
311
|
+
|
|
312
|
+
# Stop and remove everything including volumes
|
|
313
|
+
docker compose down -v --rmi all
|
|
314
|
+
|
|
315
|
+
# Restart services
|
|
316
|
+
docker compose restart web
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Building
|
|
320
|
+
|
|
321
|
+
```bash
|
|
322
|
+
# Build images
|
|
323
|
+
docker compose build
|
|
324
|
+
|
|
325
|
+
# Build without cache
|
|
326
|
+
docker compose build --no-cache
|
|
327
|
+
|
|
328
|
+
# Build and start
|
|
329
|
+
docker compose up --build
|
|
330
|
+
|
|
331
|
+
# Pull latest images
|
|
332
|
+
docker compose pull
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Monitoring
|
|
336
|
+
|
|
337
|
+
```bash
|
|
338
|
+
# View logs
|
|
339
|
+
docker compose logs -f
|
|
340
|
+
|
|
341
|
+
# View specific service logs
|
|
342
|
+
docker compose logs -f web
|
|
343
|
+
|
|
344
|
+
# View running services
|
|
345
|
+
docker compose ps
|
|
346
|
+
|
|
347
|
+
# View resource usage
|
|
348
|
+
docker compose top
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### Execution
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
# Run command in new container
|
|
355
|
+
docker compose run --rm web npm test
|
|
356
|
+
|
|
357
|
+
# Execute in running container
|
|
358
|
+
docker compose exec web /bin/sh
|
|
359
|
+
|
|
360
|
+
# Scale service
|
|
361
|
+
docker compose up -d --scale worker=3
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
## Development Workflow
|
|
365
|
+
|
|
366
|
+
### Watch Mode (Compose v2.22+)
|
|
367
|
+
|
|
368
|
+
```yaml
|
|
369
|
+
services:
|
|
370
|
+
web:
|
|
371
|
+
build: .
|
|
372
|
+
develop:
|
|
373
|
+
watch:
|
|
374
|
+
- action: sync
|
|
375
|
+
path: ./src
|
|
376
|
+
target: /app/src
|
|
377
|
+
- action: rebuild
|
|
378
|
+
path: ./package.json
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
```bash
|
|
382
|
+
docker compose watch
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
### Hot Reload Setup
|
|
386
|
+
|
|
387
|
+
```yaml
|
|
388
|
+
services:
|
|
389
|
+
web:
|
|
390
|
+
build:
|
|
391
|
+
context: .
|
|
392
|
+
target: development
|
|
393
|
+
volumes:
|
|
394
|
+
- ./src:/app/src
|
|
395
|
+
- /app/node_modules
|
|
396
|
+
environment:
|
|
397
|
+
- CHOKIDAR_USEPOLLING=true
|
|
398
|
+
command: npm run dev
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
## Common Patterns
|
|
402
|
+
|
|
403
|
+
### Database Initialization
|
|
404
|
+
|
|
405
|
+
```yaml
|
|
406
|
+
services:
|
|
407
|
+
db:
|
|
408
|
+
image: postgres:15
|
|
409
|
+
volumes:
|
|
410
|
+
- postgres-data:/var/lib/postgresql/data
|
|
411
|
+
- ./init-scripts:/docker-entrypoint-initdb.d:ro
|
|
412
|
+
environment:
|
|
413
|
+
POSTGRES_DB: myapp
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
### Reverse Proxy
|
|
417
|
+
|
|
418
|
+
```yaml
|
|
419
|
+
services:
|
|
420
|
+
proxy:
|
|
421
|
+
image: traefik:v3.0
|
|
422
|
+
ports:
|
|
423
|
+
- "80:80"
|
|
424
|
+
- "443:443"
|
|
425
|
+
volumes:
|
|
426
|
+
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
427
|
+
- ./traefik.yml:/etc/traefik/traefik.yml:ro
|
|
428
|
+
|
|
429
|
+
web:
|
|
430
|
+
labels:
|
|
431
|
+
- "traefik.enable=true"
|
|
432
|
+
- "traefik.http.routers.web.rule=Host(`app.localhost`)"
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
## Common Issues
|
|
436
|
+
|
|
437
|
+
### Issue: Container Cannot Resolve Service Name
|
|
438
|
+
**Problem**: Service can't connect to another service by name
|
|
439
|
+
**Solution**: Ensure services are on the same network, check depends_on
|
|
440
|
+
|
|
441
|
+
### Issue: Volume Permissions
|
|
442
|
+
**Problem**: Container can't write to mounted volume
|
|
443
|
+
**Solution**: Match container user UID with host, or use named volumes
|
|
444
|
+
|
|
445
|
+
### Issue: Port Already in Use
|
|
446
|
+
**Problem**: Error binding to port
|
|
447
|
+
**Solution**: Change host port or stop conflicting service
|
|
448
|
+
|
|
449
|
+
### Issue: Changes Not Reflected
|
|
450
|
+
**Problem**: Code changes don't appear in container
|
|
451
|
+
**Solution**: Check volume mounts, rebuild if Dockerfile changed
|
|
452
|
+
|
|
453
|
+
## Best Practices
|
|
454
|
+
|
|
455
|
+
- Use named volumes for persistent data
|
|
456
|
+
- Define healthchecks for database dependencies
|
|
457
|
+
- Use profiles to separate optional services
|
|
458
|
+
- Keep secrets in .env files (not committed)
|
|
459
|
+
- Use override files for environment-specific config
|
|
460
|
+
- Pin image versions for reproducibility
|
|
461
|
+
- Use networks to isolate service groups
|
|
462
|
+
- Leverage watch mode for development
|
|
463
|
+
|
|
464
|
+
## Related Skills
|
|
465
|
+
|
|
466
|
+
- docker-management (`docker-management`) - Docker fundamentals
|
|
467
|
+
- kubernetes-ops (`kubernetes-ops`) - Production orchestration
|
|
468
|
+
- reverse-proxy (`reverse-proxy`) - Production routing
|
|
469
|
+
|
|
470
|
+
## Limitations
|
|
471
|
+
|
|
472
|
+
- Guidance executes against real environments: confirm target, blast radius, and rollback plan before applying anything.
|
|
473
|
+
- Never deploy to production without explicit approval. Docs-only import: upstream scripts and templates not bundled.
|
|
474
|
+
|
|
475
|
+
### Example
|
|
476
|
+
|
|
477
|
+
```bash
|
|
478
|
+
git status && git diff --stat
|
|
479
|
+
kubectl diff -f manifest.yaml
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
> Adapted from [BagelHole/DevOps-Security-Agent-Skills](https://github.com/BagelHole/DevOps-Security-Agent-Skills) (MIT); frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance. Docs-only import: helper scripts and templates not bundled.
|