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,426 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: docker-management
|
|
3
|
+
description: Build, optimize, and troubleshoot Docker containers and images.
|
|
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 Management
|
|
21
|
+
|
|
22
|
+
Build, run, and manage Docker containers for application deployment and development.
|
|
23
|
+
|
|
24
|
+
## When to Use This Skill
|
|
25
|
+
|
|
26
|
+
Use this skill when:
|
|
27
|
+
- Creating and optimizing Dockerfiles
|
|
28
|
+
- Building and tagging Docker images
|
|
29
|
+
- Running and managing containers
|
|
30
|
+
- Debugging container issues
|
|
31
|
+
- Configuring Docker networking and volumes
|
|
32
|
+
- Implementing container security best practices
|
|
33
|
+
|
|
34
|
+
## Prerequisites
|
|
35
|
+
|
|
36
|
+
- Docker Engine installed (20.10+)
|
|
37
|
+
- Basic command line knowledge
|
|
38
|
+
- Understanding of application deployment
|
|
39
|
+
|
|
40
|
+
## Dockerfile Best Practices
|
|
41
|
+
|
|
42
|
+
### Multi-Stage Build
|
|
43
|
+
|
|
44
|
+
```dockerfile
|
|
45
|
+
# Build stage
|
|
46
|
+
FROM node:20-alpine AS builder
|
|
47
|
+
WORKDIR /app
|
|
48
|
+
COPY package*.json ./
|
|
49
|
+
RUN npm ci --only=production
|
|
50
|
+
COPY . .
|
|
51
|
+
RUN npm run build
|
|
52
|
+
|
|
53
|
+
# Production stage
|
|
54
|
+
FROM node:20-alpine AS production
|
|
55
|
+
WORKDIR /app
|
|
56
|
+
RUN addgroup -g 1001 -S nodejs && \
|
|
57
|
+
adduser -S nodejs -u 1001
|
|
58
|
+
COPY --from=builder --chown=nodejs:nodejs /app/dist ./dist
|
|
59
|
+
COPY --from=builder --chown=nodejs:nodejs /app/node_modules ./node_modules
|
|
60
|
+
USER nodejs
|
|
61
|
+
EXPOSE 3000
|
|
62
|
+
CMD ["node", "dist/index.js"]
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Layer Optimization
|
|
66
|
+
|
|
67
|
+
```dockerfile
|
|
68
|
+
FROM python:3.12-slim
|
|
69
|
+
|
|
70
|
+
# Install dependencies first (cached unless requirements change)
|
|
71
|
+
COPY requirements.txt .
|
|
72
|
+
RUN pip install --no-cache-dir -r requirements.txt
|
|
73
|
+
|
|
74
|
+
# Copy application code (changes frequently)
|
|
75
|
+
COPY . .
|
|
76
|
+
|
|
77
|
+
CMD ["python", "app.py"]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Security Hardening
|
|
81
|
+
|
|
82
|
+
```dockerfile
|
|
83
|
+
FROM node:20-alpine
|
|
84
|
+
|
|
85
|
+
# Create non-root user
|
|
86
|
+
RUN addgroup -g 1001 appgroup && \
|
|
87
|
+
adduser -u 1001 -G appgroup -D appuser
|
|
88
|
+
|
|
89
|
+
WORKDIR /app
|
|
90
|
+
|
|
91
|
+
# Copy with proper ownership
|
|
92
|
+
COPY --chown=appuser:appgroup . .
|
|
93
|
+
|
|
94
|
+
# Drop privileges
|
|
95
|
+
USER appuser
|
|
96
|
+
|
|
97
|
+
# Use exec form for proper signal handling
|
|
98
|
+
CMD ["node", "server.js"]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Building Images
|
|
102
|
+
|
|
103
|
+
### Basic Build
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Build with tag
|
|
107
|
+
docker build -t myapp:1.0 .
|
|
108
|
+
|
|
109
|
+
# Build with build args
|
|
110
|
+
docker build --build-arg NODE_ENV=production -t myapp:prod .
|
|
111
|
+
|
|
112
|
+
# Build for specific platform
|
|
113
|
+
docker build --platform linux/amd64 -t myapp:amd64 .
|
|
114
|
+
|
|
115
|
+
# Build with no cache
|
|
116
|
+
docker build --no-cache -t myapp:fresh .
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Multi-Platform Builds
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# Create builder
|
|
123
|
+
docker buildx create --name multiplatform --use
|
|
124
|
+
|
|
125
|
+
# Build for multiple architectures
|
|
126
|
+
docker buildx build \
|
|
127
|
+
--platform linux/amd64,linux/arm64 \
|
|
128
|
+
-t myregistry/myapp:latest \
|
|
129
|
+
--push .
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Running Containers
|
|
133
|
+
|
|
134
|
+
### Basic Operations
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# Run container
|
|
138
|
+
docker run -d --name myapp -p 8080:3000 myapp:latest
|
|
139
|
+
|
|
140
|
+
# Run with environment variables
|
|
141
|
+
docker run -d \
|
|
142
|
+
-e DATABASE_URL=postgres://localhost/db \
|
|
143
|
+
-e NODE_ENV=production \
|
|
144
|
+
myapp:latest
|
|
145
|
+
|
|
146
|
+
# Run with resource limits
|
|
147
|
+
docker run -d \
|
|
148
|
+
--memory="512m" \
|
|
149
|
+
--cpus="1.0" \
|
|
150
|
+
myapp:latest
|
|
151
|
+
|
|
152
|
+
# Run with restart policy
|
|
153
|
+
docker run -d --restart=unless-stopped myapp:latest
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Volume Management
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
# Named volume
|
|
160
|
+
docker volume create mydata
|
|
161
|
+
docker run -v mydata:/app/data myapp:latest
|
|
162
|
+
|
|
163
|
+
# Bind mount
|
|
164
|
+
docker run -v $(pwd)/config:/app/config:ro myapp:latest
|
|
165
|
+
|
|
166
|
+
# tmpfs mount (memory)
|
|
167
|
+
docker run --tmpfs /tmp:rw,noexec,nosuid myapp:latest
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Networking
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
# Create network
|
|
174
|
+
docker network create mynetwork
|
|
175
|
+
|
|
176
|
+
# Run on network
|
|
177
|
+
docker run -d --network mynetwork --name api myapp:latest
|
|
178
|
+
|
|
179
|
+
# Connect existing container
|
|
180
|
+
docker network connect mynetwork existing-container
|
|
181
|
+
|
|
182
|
+
# Expose specific ports
|
|
183
|
+
docker run -d -p 127.0.0.1:8080:3000 myapp:latest
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Container Lifecycle
|
|
187
|
+
|
|
188
|
+
### Management Commands
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
# List containers
|
|
192
|
+
docker ps -a
|
|
193
|
+
|
|
194
|
+
# Stop container
|
|
195
|
+
docker stop myapp
|
|
196
|
+
|
|
197
|
+
# Remove container
|
|
198
|
+
docker rm myapp
|
|
199
|
+
|
|
200
|
+
# Force remove running container
|
|
201
|
+
docker rm -f myapp
|
|
202
|
+
|
|
203
|
+
# Prune stopped containers
|
|
204
|
+
docker container prune -f
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Logs and Monitoring
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# View logs
|
|
211
|
+
docker logs myapp
|
|
212
|
+
|
|
213
|
+
# Follow logs
|
|
214
|
+
docker logs -f --tail 100 myapp
|
|
215
|
+
|
|
216
|
+
# View resource usage
|
|
217
|
+
docker stats myapp
|
|
218
|
+
|
|
219
|
+
# Inspect container
|
|
220
|
+
docker inspect myapp
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## Debugging Containers
|
|
224
|
+
|
|
225
|
+
### Interactive Access
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
# Execute command in running container
|
|
229
|
+
docker exec -it myapp /bin/sh
|
|
230
|
+
|
|
231
|
+
# Run container with shell
|
|
232
|
+
docker run -it --rm myapp:latest /bin/sh
|
|
233
|
+
|
|
234
|
+
# Debug failed container
|
|
235
|
+
docker run -it --entrypoint /bin/sh myapp:latest
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Troubleshooting
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
# Check container logs for errors
|
|
242
|
+
docker logs myapp 2>&1 | grep -i error
|
|
243
|
+
|
|
244
|
+
# Inspect container state
|
|
245
|
+
docker inspect --format='{{.State.Status}}' myapp
|
|
246
|
+
|
|
247
|
+
# Check container processes
|
|
248
|
+
docker top myapp
|
|
249
|
+
|
|
250
|
+
# View container filesystem changes
|
|
251
|
+
docker diff myapp
|
|
252
|
+
|
|
253
|
+
# Export container filesystem
|
|
254
|
+
docker export myapp > myapp-fs.tar
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Health Checks
|
|
258
|
+
|
|
259
|
+
```dockerfile
|
|
260
|
+
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
|
261
|
+
CMD curl -f http://localhost:3000/health || exit 1
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
# Check health status
|
|
266
|
+
docker inspect --format='{{.State.Health.Status}}' myapp
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
## Image Management
|
|
270
|
+
|
|
271
|
+
### Tagging and Pushing
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
# Tag image
|
|
275
|
+
docker tag myapp:latest myregistry.com/myapp:v1.0
|
|
276
|
+
|
|
277
|
+
# Push to registry
|
|
278
|
+
docker push myregistry.com/myapp:v1.0
|
|
279
|
+
|
|
280
|
+
# Pull image
|
|
281
|
+
docker pull myregistry.com/myapp:v1.0
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Cleanup
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
# Remove unused images
|
|
288
|
+
docker image prune -a
|
|
289
|
+
|
|
290
|
+
# Remove all unused resources
|
|
291
|
+
docker system prune -a --volumes
|
|
292
|
+
|
|
293
|
+
# Remove specific image
|
|
294
|
+
docker rmi myapp:old
|
|
295
|
+
|
|
296
|
+
# List image sizes
|
|
297
|
+
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### Image Analysis
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
# View image history
|
|
304
|
+
docker history myapp:latest
|
|
305
|
+
|
|
306
|
+
# Inspect image layers
|
|
307
|
+
docker inspect myapp:latest
|
|
308
|
+
|
|
309
|
+
# Check image vulnerabilities (with Docker Scout)
|
|
310
|
+
docker scout cves myapp:latest
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
## Docker Compose Integration
|
|
314
|
+
|
|
315
|
+
```yaml
|
|
316
|
+
# docker-compose.yml
|
|
317
|
+
version: '3.8'
|
|
318
|
+
|
|
319
|
+
services:
|
|
320
|
+
app:
|
|
321
|
+
build:
|
|
322
|
+
context: .
|
|
323
|
+
dockerfile: Dockerfile
|
|
324
|
+
ports:
|
|
325
|
+
- "3000:3000"
|
|
326
|
+
environment:
|
|
327
|
+
- NODE_ENV=production
|
|
328
|
+
volumes:
|
|
329
|
+
- app-data:/app/data
|
|
330
|
+
depends_on:
|
|
331
|
+
- db
|
|
332
|
+
restart: unless-stopped
|
|
333
|
+
|
|
334
|
+
db:
|
|
335
|
+
image: postgres:15-alpine
|
|
336
|
+
environment:
|
|
337
|
+
POSTGRES_PASSWORD: secret
|
|
338
|
+
volumes:
|
|
339
|
+
- db-data:/var/lib/postgresql/data
|
|
340
|
+
|
|
341
|
+
volumes:
|
|
342
|
+
app-data:
|
|
343
|
+
db-data:
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
## Security Best Practices
|
|
347
|
+
|
|
348
|
+
### Image Security
|
|
349
|
+
|
|
350
|
+
```dockerfile
|
|
351
|
+
# Use specific version tags
|
|
352
|
+
FROM node:20.10-alpine3.18
|
|
353
|
+
|
|
354
|
+
# Don't run as root
|
|
355
|
+
USER nobody
|
|
356
|
+
|
|
357
|
+
# Remove unnecessary packages
|
|
358
|
+
RUN apk del --purge build-dependencies
|
|
359
|
+
|
|
360
|
+
# Use COPY instead of ADD
|
|
361
|
+
COPY . .
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
### Runtime Security
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
# Run with security options
|
|
368
|
+
docker run -d \
|
|
369
|
+
--security-opt=no-new-privileges \
|
|
370
|
+
--cap-drop=ALL \
|
|
371
|
+
--cap-add=NET_BIND_SERVICE \
|
|
372
|
+
--read-only \
|
|
373
|
+
myapp:latest
|
|
374
|
+
|
|
375
|
+
# Use user namespace remapping
|
|
376
|
+
# Add to /etc/docker/daemon.json: {"userns-remap": "default"}
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
## Common Issues
|
|
380
|
+
|
|
381
|
+
### Issue: Container Exits Immediately
|
|
382
|
+
**Problem**: Container starts and stops instantly
|
|
383
|
+
**Solution**: Check if CMD/ENTRYPOINT runs foreground process, use `docker logs` to see errors
|
|
384
|
+
|
|
385
|
+
### Issue: Cannot Connect to Container
|
|
386
|
+
**Problem**: Port not accessible
|
|
387
|
+
**Solution**: Verify port mapping (-p), check container is running, verify firewall rules
|
|
388
|
+
|
|
389
|
+
### Issue: Out of Disk Space
|
|
390
|
+
**Problem**: Docker using too much disk
|
|
391
|
+
**Solution**: Run `docker system prune -a --volumes`, check for large unused images
|
|
392
|
+
|
|
393
|
+
### Issue: Build Cache Not Working
|
|
394
|
+
**Problem**: Every build downloads dependencies
|
|
395
|
+
**Solution**: Order Dockerfile instructions from least to most frequently changing
|
|
396
|
+
|
|
397
|
+
## Best Practices
|
|
398
|
+
|
|
399
|
+
- Use multi-stage builds to minimize image size
|
|
400
|
+
- Never store secrets in images - use runtime injection
|
|
401
|
+
- Pin base image versions for reproducibility
|
|
402
|
+
- Implement health checks for production containers
|
|
403
|
+
- Use .dockerignore to exclude unnecessary files
|
|
404
|
+
- Run containers as non-root users
|
|
405
|
+
- Scan images for vulnerabilities regularly
|
|
406
|
+
- Use Docker BuildKit for faster builds
|
|
407
|
+
|
|
408
|
+
## Related Skills
|
|
409
|
+
|
|
410
|
+
- docker-compose (`docker-compose`) - Multi-container applications
|
|
411
|
+
- container-scanning (`container-scanning`) - Security scanning
|
|
412
|
+
- container-hardening (`container-hardening`) - Security hardening
|
|
413
|
+
|
|
414
|
+
## Limitations
|
|
415
|
+
|
|
416
|
+
- Guidance executes against real environments: confirm target, blast radius, and rollback plan before applying anything.
|
|
417
|
+
- Never deploy to production without explicit approval. Docs-only import: upstream scripts and templates not bundled.
|
|
418
|
+
|
|
419
|
+
### Example
|
|
420
|
+
|
|
421
|
+
```bash
|
|
422
|
+
git status && git diff --stat
|
|
423
|
+
kubectl diff -f manifest.yaml
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
> 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.
|