setup-compose-stack
О программе
Этот навык Claude создает конфигурации Docker Compose для распространенных шаблонов многокомпонентных веб-приложений. Он настраивает стеки с веб-приложениями, базами данных, кэшами и воркерами, включая сетевые настройки, тома, проверки работоспособности и управление переменными окружения. Используйте его при создании сред разработки, оркестрации фоновых воркеров с API или организации воспроизводимых многокомпонентных установок для команд.
Быстрая установка
Claude Code
Рекомендуетсяnpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/setup-compose-stackСкопируйте и вставьте эту команду в Claude Code для установки этого навыка
Документация
name: setup-compose-stack description: > Konfiguriere allgemeine Docker-Compose-Stacks fuer gaengige Anwendungsmuster. Umfasst Web-App + Datenbank + Cache + Worker-Dienste, benannte Volumes, Netzwerke, Health-Checks, depends_on, Umgebungsverwaltung und Profile. Verwende diesen Skill beim Betrieb einer Web-App mit Datenbank oder Cache, beim Einrichten einer Entwicklungsumgebung mit mehreren Diensten, beim Orchestrieren von Hintergrund-Workern neben einer API oder beim Erstellen reproduzierbarer Multi-Service-Umgebungen teamuebergreifend. license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: containerization complexity: intermediate language: Docker tags: docker-compose, orchestration, postgres, redis, multi-service, health-checks locale: de source_locale: en source_commit: 6f65f316 translator: claude-sonnet-4-6 translation_date: 2026-03-16
Compose-Stack einrichten
Docker Compose fuer Multi-Service-Anwendungsstacks mit Datenbanken, Caches und Workern konfigurieren.
Wann verwenden
- Betrieb einer Web-App mit Datenbank und/oder Cache
- Einrichten einer Entwicklungsumgebung mit mehreren Diensten
- Orchestrieren von Hintergrund-Workern neben einer API
- Reproduzierbare Multi-Service-Umgebungen teamuebergreifend benoetigt
Eingaben
- Erforderlich: Anwendungsdienst (Sprache, Port, Einstiegspunkt)
- Erforderlich: Benoetigte unterstuetzende Dienste (Datenbank, Cache, Queue usw.)
- Optional: Entwicklungs- vs. Produktionskonfiguration
- Optional: Vorhandene Dockerfiles fuer benutzerdefinierte Dienste
Vorgehensweise
Schritt 1: Kern-Stack definieren
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "3000:3000"
environment:
DATABASE_URL: postgres://appuser:apppass@postgres:5432/appdb
REDIS_URL: redis://redis:6379
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_started
restart: unless-stopped
postgres:
image: postgres:16
environment:
POSTGRES_DB: appdb
POSTGRES_USER: appuser
POSTGRES_PASSWORD: apppass
volumes:
- pgdata:/var/lib/postgresql/data
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U appuser -d appdb"]
interval: 5s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redisdata:/data
volumes:
pgdata:
redisdata:
Erwartet: docker compose up startet alle Dienste, wobei die App auf eine gesunde Datenbank wartet.
Schritt 2: Health-Checks hinzufuegen
Health-Checks ermoeglichen depends_on mit condition: service_healthy:
services:
postgres:
healthcheck:
test: ["CMD-SHELL", "pg_isready -U appuser -d appdb"]
interval: 5s
timeout: 5s
retries: 5
redis:
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5
app:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 10s
timeout: 5s
retries: 3
start_period: 10s
Schritt 3: Netzwerke konfigurieren
services:
app:
networks:
- frontend
- backend
postgres:
networks:
- backend
nginx:
networks:
- frontend
ports:
- "80:80"
networks:
frontend:
driver: bridge
backend:
driver: bridge
Dies isoliert die Datenbank von direktem externen Zugriff, waehrend die App beide Netzwerke verbindet.
Schritt 4: Umgebungsvariablen verwalten
.env-Datei erstellen (git-ignoriert):
POSTGRES_PASSWORD=secure_password_here
APP_SECRET=your_secret_key
In Compose referenzieren:
services:
postgres:
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
app:
env_file:
- .env
.env.example erstellen (in Git eingecheckt):
POSTGRES_PASSWORD=changeme
APP_SECRET=changeme
Schritt 5: Worker-Dienste hinzufuegen
services:
worker:
build:
context: .
dockerfile: Dockerfile
command: ["node", "src/worker.js"]
environment:
DATABASE_URL: postgres://appuser:apppass@postgres:5432/appdb
REDIS_URL: redis://redis:6379
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_started
restart: unless-stopped
deploy:
replicas: 2
Schritt 6: Profile fuer optionale Dienste verwenden
services:
app:
# startet immer
build: .
mailhog:
image: mailhog/mailhog
ports:
- "8025:8025"
profiles:
- dev
adminer:
image: adminer
ports:
- "8080:8080"
profiles:
- dev
# Nur Kerndienste starten
docker compose up
# Mit Entwicklungstools starten
docker compose --profile dev up
Schritt 7: Override fuer Entwicklung erstellen
docker-compose.override.yml wird automatisch zusammengefuehrt:
services:
app:
build:
target: dev
volumes:
- .:/app
- /app/node_modules
environment:
NODE_ENV: development
DEBUG: "app:*"
command: ["npm", "run", "dev"]
Schritt 8: Bauen und Starten
# Alle Images bauen
docker compose build
# Im Hintergrund starten
docker compose up -d
# Logs anzeigen
docker compose logs -f app
# Dienststatus pruefen
docker compose ps
# Stoppen und entfernen
docker compose down
# Stoppen und Volumes entfernen (vollstaendiger Reset)
docker compose down -v
Erwartet: Alle Dienste starten, Health-Checks bestehen, App verbindet sich mit Datenbank und Cache.
Bei Fehler: docker compose logs <service> pruefen. Haeufige Probleme: Port-Konflikte, fehlende Umgebungsvariablen, Health-Check-Timeouts.
Validierung
-
docker compose upstartet alle Dienste fehlerfrei - Health-Checks bestehen fuer Datenbank und Cache
- Anwendung verbindet sich mit allen abhaengigen Diensten
- Benannte Volumes persistieren Daten ueber Neustarts hinweg
-
.envist git-ignoriert;.env.exampleist eingecheckt -
docker compose downstoppt alles sauber - Profile trennen Entwicklungstools von Produktionsdiensten
Haeufige Fehler
- Keine Health-Checks:
depends_onohnecondition: service_healthywartet nur auf Container-Start, nicht auf Bereitschaft. - Hartcodierte Passwoerter in Compose:
.env-Dateien oder Docker Secrets verwenden. Niemals Passwoerter committen. - Volume-Mount ueberschreibt: Das Mounten von
.:/appueberschreibt im Image gebautenode_modules. Ein anonymes Volume verwenden:/app/node_modules. - Port-Konflikte:
docker compose psundlsof -i :<port>auf Konflikte pruefen. version:-Schluessel: Compose V2 ignoriert denversion:-Schluessel. Fuer moderne Setups weglassen.- WSL-Pfad-Probleme:
/mnt/c/...-Pfade verwenden, wenn Windows-Verzeichnisse aus WSL eingehaengt werden.
Verwandte Skills
setup-docker-compose- R-spezifische Docker-Compose-Konfigurationencreate-dockerfile- Das Dockerfile schreiben, das Compose referenziertcreate-multistage-dockerfile- Optimierte Images fuer den Stack bauenconfigure-nginx- Nginx-Reverse-Proxy zum Stack hinzufuegen
GitHub репозиторий
Frequently asked questions
What is the setup-compose-stack skill?
setup-compose-stack is a Claude Skill by pjt222. Skills package instructions and resources that Claude loads on demand, so Claude can perform setup-compose-stack-related tasks without extra prompting.
How do I install setup-compose-stack?
Use the install commands on this page: add setup-compose-stack to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does setup-compose-stack belong to?
setup-compose-stack is in the Meta category, tagged api.
Is setup-compose-stack free to use?
Yes. setup-compose-stack is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.
Похожие навыки
Этот навык предоставляет проверенную в продакшене настройку для Content Collections — TypeScript-ориентированного инструмента, который преобразует файлы Markdown/MDX в типобезопасные коллекции данных с валидацией Zod. Используйте его при создании блогов, сайтов документации или контентных приложений на Vite + React для обеспечения типобезопасности и автоматической проверки содержимого. Он охватывает всё: от настройки плагина Vite и компиляции MDX до оптимизации развертывания и валидации схем.
Этот навык позволяет разработчикам создавать приложения на платформе прогнозных рынков Polymarket, включая интеграцию с API для торговли и получения рыночных данных. Он также обеспечивает потоковую передачу данных в реальном времени через WebSocket для отслеживания текущих сделок и рыночной активности. Используйте его для реализации торговых стратегий или создания инструментов, обрабатывающих обновления рынка в реальном времени.
Этот навык помогает разработчикам создавать плагины OpenCode, которые подключаются к более чем 25 типам событий, таким как команды, файлы и операции LSP. Он предоставляет структуру плагина, спецификации API событий и шаблоны реализации для модулей на JavaScript/TypeScript. Используйте его, когда вам нужно перехватывать, отслеживать или расширять жизненный цикл ассистента OpenCode AI с помощью пользовательской событийно-ориентированной логики.
SGLang — это высокопроизводительный фреймворк для обслуживания больших языковых моделей (LLM), специализирующийся на быстрой структурированной генерации JSON, regex и рабочих процессов агентов с использованием кэширования префиксов RadixAttention. Он обеспечивает значительно более высокую скорость вывода, особенно для задач с повторяющимися префиксами, что делает его идеальным для сложных структурированных результатов и многократных диалогов. Выбирайте SGLang вместо альтернатив, таких как vLLM, когда вам требуется ограниченное декодирование или вы создаете приложения с интенсивным совместным использованием префиксов.
