MCP HubMCP Hub
Вернуться к навыкам

setup-compose-stack

pjt222
Обновлено 6 days ago
17 просмотров
17
2
17
Посмотреть на GitHub
Метаapidata

О программе

Этот навык Claude помогает разработчикам настраивать стеки Docker Compose для распространённых шаблонов многокомпонентных приложений, таких как веб-приложения с базами данных, кэшами и воркерами. Он охватывает ключевые возможности оркестрации, включая именованные тома, сети, проверки работоспособности и управление переменными окружения. Используйте его при настройке воспроизводимых сред разработки или оркестрации сервисов, приближенной к производственной, в командах.

Быстрая установка

Claude Code

Рекомендуется
Основной
npx skills add pjt222/agent-almanac -a claude-code
Команда плагинаАльтернативный
/plugin add https://github.com/pjt222/agent-almanac
Git клонированиеАльтернативный
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/setup-compose-stack

Скопируйте и вставьте эту команду в Claude Code для установки этого навыка

Документация

設 Compose 棧

配 Docker Compose 為多服應棧含庫、緩、工。

  • 行網應含庫/緩→用
  • 設多服開境→用
  • 排背工於 API 旁→用
  • 跨組需可重多服境→用

  • :應服(語、口、入點)
  • :所需輔服(庫、緩、隊等)
  • :開 vs 產配
  • :自服既 Dockerfile

一:定核棧

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:

得:docker compose up 啟諸服、應待健庫。

二:加健察

健察使 depends_on 能用 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

三:配網

services:
  app:
    networks:
      - frontend
      - backend

  postgres:
    networks:
      - backend

  nginx:
    networks:
      - frontend
    ports:
      - "80:80"

networks:
  frontend:
    driver: bridge
  backend:
    driver: bridge

此隔庫於直外達、應跨兩網。

四:管環變

.env(git 忽):

POSTGRES_PASSWORD=secure_password_here
APP_SECRET=your_secret_key

於 compose 用:

services:
  postgres:
    environment:
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
  app:
    env_file:
      - .env

.env.example(提至 git):

POSTGRES_PASSWORD=changeme
APP_SECRET=changeme

五:加工服

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

六:用組為可選服

services:
  app:
    build: .

  mailhog:
    image: mailhog/mailhog
    ports:
      - "8025:8025"
    profiles:
      - dev

  adminer:
    image: adminer
    ports:
      - "8080:8080"
    profiles:
      - dev
# Start core services only
docker compose up

# Start with dev tools
docker compose --profile dev up

七:建覆為開

docker-compose.override.yml 自合:

services:
  app:
    build:
      target: dev
    volumes:
      - .:/app
      - /app/node_modules
    environment:
      NODE_ENV: development
      DEBUG: "app:*"
    command: ["npm", "run", "dev"]

八:建行

docker compose build

docker compose up -d

docker compose logs -f app

docker compose ps

docker compose down

docker compose down -v

得:諸服啟、健察過、應連庫與緩。

敗:察 docker compose logs <service>。常題:口衝、缺環變、健察超時。

  • docker compose up 啟諸服無誤
  • 庫與緩健察過
  • 應連諸依服
  • 名卷跨啟保資
  • .env git 忽、.env.example
  • docker compose down 潔停諸
  • 組分開工於產服

  • 無健察depends_oncondition: service_healthy 僅待容啟、非備
  • 硬碼密於 compose:用 .env 或 Docker secrets。永勿提密
  • 卷掛覆:掛 .:/app 覆像內 node_modules。用匿卷:/app/node_modules
  • 口衝:察 docker compose pslsof -i :<port>
  • version::Compose V2 忽 version:。今設略之
  • WSL 徑問題:自 WSL 掛 Windows 目用 /mnt/c/...

  • setup-docker-compose
  • create-dockerfile
  • create-multistage-dockerfile
  • configure-nginx

GitHub репозиторий

pjt222/agent-almanac
Путь: i18n/wenyan-ultra/skills/setup-compose-stack
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Похожие навыки

content-collections

Мета

Этот навык предоставляет проверенную в продакшене настройку для Content Collections — TypeScript-ориентированного инструмента, который преобразует файлы Markdown/MDX в типобезопасные коллекции данных с валидацией Zod. Используйте его при создании блогов, сайтов документации или контентных приложений на Vite + React для обеспечения типобезопасности и автоматической проверки содержимого. Он охватывает всё: от настройки плагина Vite и компиляции MDX до оптимизации развертывания и валидации схем.

Просмотреть навык

polymarket

Мета

Этот навык позволяет разработчикам создавать приложения на платформе прогнозных рынков Polymarket, включая интеграцию с API для торговли и получения рыночных данных. Он также обеспечивает потоковую передачу данных в реальном времени через WebSocket для отслеживания текущих сделок и рыночной активности. Используйте его для реализации торговых стратегий или создания инструментов, обрабатывающих обновления рынка в реальном времени.

Просмотреть навык

creating-opencode-plugins

Мета

Этот навык помогает разработчикам создавать плагины OpenCode, которые подключаются к более чем 25 типам событий, таким как команды, файлы и операции LSP. Он предоставляет структуру плагина, спецификации API событий и шаблоны реализации для модулей на JavaScript/TypeScript. Используйте его, когда вам нужно перехватывать, отслеживать или расширять жизненный цикл ассистента OpenCode AI с помощью пользовательской событийно-ориентированной логики.

Просмотреть навык

sglang

Мета

SGLang — это высокопроизводительный фреймворк для обслуживания больших языковых моделей (LLM), специализирующийся на быстрой структурированной генерации JSON, regex и рабочих процессов агентов с использованием кэширования префиксов RadixAttention. Он обеспечивает значительно более высокую скорость вывода, особенно для задач с повторяющимися префиксами, что делает его идеальным для сложных структурированных результатов и многократных диалогов. Выбирайте SGLang вместо альтернатив, таких как vLLM, когда вам требуется ограниченное декодирование или вы создаете приложения с интенсивным совместным использованием префиксов.

Просмотреть навык