MCP HubMCP Hub
SKILL·0421DE

setup-docker-compose

pjt222
Actualizado 3 months ago
11 vistas
31
3
31
Ver en GitHub
Documentaciónaiapimcp

Acerca de

Esta habilidad configura Docker Compose para entornos de desarrollo en R con múltiples contenedores, manejando definiciones de servicios, montajes de volúmenes, redes y variables de entorno. Permite ejecutar R junto con otros servicios como bases de datos y APIs, garantizando entornos reproducibles. Úsela para orquestar aplicaciones basadas en R y gestionar configuraciones específicas del proyecto tanto para desarrollo como para producción.

Instalación rápida

Claude Code

Recomendado
Principal
npx skills add pjt222/agent-almanac -a claude-code
Comando PluginAlternativo
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternativo
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/setup-docker-compose

Copia y pega este comando en Claude Code para instalar esta habilidad

Documentación

Set Up Docker Compose

Configure Docker Compose for R dev + deploy envs.

Use When

  • R + other services (DBs, APIs)
  • Reproducible dev env
  • Orchestrate R-based MCP server
  • Manage env vars + volume mounts

In

  • Required: Dockerfile for R service
  • Required: Project dir to mount
  • Optional: Additional services (DB, cache, web)
  • Optional: Env var config

Do

Step 1: Create docker-compose.yml

version: '3.8'

services:
  r-dev:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: r-dev
    image: r-dev:latest

    volumes:
      - .:/workspace
      - renv-cache:/workspace/renv/cache

    stdin_open: true
    tty: true

    environment:
      - TERM=xterm-256color
      - R_LIBS_USER=/workspace/renv/library
      - RENV_PATHS_CACHE=/workspace/renv/cache

    command: R

    restart: unless-stopped

volumes:
  renv-cache:
    driver: local

docker-compose.yml exists w/ R service, volume mounts (project + renv cache), env vars for R lib paths.

If err: invalid YAML → docker compose config validate. Spaces (not tabs); special chars quoted.

Step 2: Add Services (If Needed)

services:
  r-dev:
    # ... as above
    depends_on:
      - postgres
    environment:
      - DB_HOST=postgres
      - DB_PORT=5432

  postgres:
    image: postgres:16
    container_name: r-postgres
    environment:
      POSTGRES_DB: analysis
      POSTGRES_USER: ruser
      POSTGRES_PASSWORD_FILE: /run/secrets/db_password
    volumes:
      - pgdata:/var/lib/postgresql/data
    ports:
      - "5432:5432"

volumes:
  renv-cache:
  pgdata:

→ Service (PostgreSQL) defined w/ own volume, env vars, ports. R service depends_on references new.

If err: DB fails start → docker compose logs postgres for init errs. Verify env vars (POSTGRES_PASSWORD_FILE → valid secret) or switch POSTGRES_PASSWORD for dev.

Step 3: Networking

For services needing localhost (MCP):

services:
  r-dev:
    network_mode: "host"

Isolated:

services:
  r-dev:
    networks:
      - app-network
    ports:
      - "3000:3000"

networks:
  app-network:
    driver: bridge

→ Networking configured: host for localhost-needing (MCP), bridge w/ explicit ports for isolated.

If err: services can't comm → verify same net. Bridge → use service names as hostnames (postgres not localhost). Host → localhost + no port conflicts.

Step 4: Env Vars

.env (git-ignored):

R_VERSION=4.5.0
GITHUB_PAT=your_token_here

Reference:

services:
  r-dev:
    build:
      args:
        R_VERSION: ${R_VERSION}
    env_file:
      - .env

.env exists git-ignored w/ project vars; compose references via env_file|${VAR}.

If err: vars not resolving → .env in same dir as docker-compose.yml. docker compose config shows resolved.

Step 5: Build + Run

# Build images
docker compose build

# Start services
docker compose up -d

# Attach to R session
docker compose exec r-dev R

# View logs
docker compose logs -f r-dev

# Stop services
docker compose down

→ All start. R session accessible.

If err: docker compose logs → startup errs. Common: port conflicts, missing env vars.

Step 6: Override for Dev

docker-compose.override.yml:

services:
  r-dev:
    volumes:
      - /path/to/local/packages:/extra-packages
    environment:
      - DEBUG=true

Auto-merged.

→ Override exists w/ dev settings (extra volumes, debug) auto-applied via docker compose up.

If err: not taking effect → verify exact docker-compose.override.yml. docker compose config confirms merge. Explicit: docker compose -f docker-compose.yml -f custom-override.yml up.

Check

  • docker compose build w/o errs
  • docker compose up starts all
  • Volume mounts share files host↔container
  • Env vars available inside
  • Services can comm
  • docker compose down cleanly stops

Traps

  • Volume mount perms: Linux containers create files as root. user: directive or fix perms.
  • Port conflicts: Check services using same ports on host.
  • Docker Desktop vs CLI: docker compose (v2) vs docker-compose (v1). Use v2.
  • WSL path mounts: /mnt/c/... for Windows dirs from WSL.
  • Named vs bind: Named persist across rebuilds; bind reflects host immediately.

  • create-r-dockerfile — Dockerfile compose references
  • containerize-mcp-server — compose for MCP
  • optimize-docker-build-cache — speed up builds

Repositorio GitHub

pjt222/agent-almanac
Ruta: i18n/caveman-ultra/skills/setup-docker-compose
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams
FAQ

Preguntas frecuentes

¿Qué es el Skill setup-docker-compose?

setup-docker-compose es un Skill de Claude creado por pjt222. Los Skills agrupan instrucciones y recursos que Claude carga cuando los necesita para realizar tareas relacionadas con setup-docker-compose sin indicaciones adicionales.

¿Cómo instalo setup-docker-compose?

Usa los comandos de instalación de esta página: añade setup-docker-compose a Claude Code como plugin o clona su repositorio en tu directorio de skills y reinicia Claude para cargarlo.

¿A qué categoría pertenece setup-docker-compose?

setup-docker-compose pertenece a la categoría Documentación.

¿Se puede usar setup-docker-compose gratis?

Sí. setup-docker-compose aparece en AIMCP y se puede instalar gratis.

Habilidades relacionadas

railway-docs
Documentación

Esta habilidad obtiene la documentación actual de Railway para responder preguntas sobre características, funcionalidad o URLs específicas de documentación. Garantiza que los desarrolladores reciban información precisa y actualizada directamente de las fuentes oficiales de Railway. Úsala cuando los usuarios pregunten cómo funciona Railway o hagan referencia a la documentación de Railway.

Ver habilidad
n8n-code-python
Documentación

Esta Skill de Claude proporciona orientación experta para escribir código Python en los nodos Code de n8n, específicamente para usar la biblioteca estándar de Python y trabajar con la sintaxis especial de n8n como `_input`, `_json` y `_node`. Ayuda a los desarrolladores a comprender las limitaciones de Python dentro de n8n y recomienda usar JavaScript para la mayoría de los flujos de trabajo, mientras ofrece soluciones en Python para necesidades específicas de transformación de datos.

Ver habilidad
archon
Documentación

La habilidad Archon proporciona búsqueda semántica con tecnología RAG y gestión de proyectos a través de una API REST. Úsala para consultar documentación, gestionar proyectos/tareas jerárquicos y realizar recuperación de conocimiento con capacidades de carga de documentos. Prioriza siempre a Archon en primer lugar al buscar en documentación externa antes de utilizar otras fuentes.

Ver habilidad
n8n-code-javascript
Documentación

Esta habilidad de Claude proporciona orientación experta para escribir código JavaScript en los nodos de Código de n8n. Cubre sintaxis esencial específica de n8n como las variables `$input`/`$json`, ayudantes HTTP y manejo de DateTime, mientras soluciona errores comunes. Úsela al desarrollar flujos de trabajo en n8n que requieran procesamiento personalizado de JavaScript en los nodos de Código.

Ver habilidad