MCP HubMCP Hub
스킬 목록으로 돌아가기

setup-docker-compose

pjt222
업데이트됨 Yesterday
1 조회
17
2
17
GitHub에서 보기
문서general

정보

이 스킬은 PostgreSQL과 Redis 같은 데이터베이스 서비스를 포함한 R 개발 환경을 위한 Docker Compose 구성을 설정합니다. 영구 볼륨, 네트워킹, 다중 컨테이너 오케스트레이션을 처리합니다. 외부 서비스와 함께 R 애플리케이션을 실행하거나 복잡한 개발 설정을 관리할 때 사용하세요.

빠른 설치

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-docker-compose

Claude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요

문서


name: setup-docker-compose locale: es source_locale: en source_commit: 6f65f316 translator: claude-sonnet-4-6 translation_date: 2026-03-16 description: > Configurar Docker Compose para entornos R con servicios de base de datos, volúmenes persistentes y redes. Usar cuando se necesite ejecutar aplicaciones R junto con PostgreSQL, Redis u otros servicios, o cuando se gestionen entornos de desarrollo multi-contenedor. license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: containerization complexity: basic language: multi tags: docker-compose, r, multi-container, orchestration

Configurar Docker Compose

Configurar Docker Compose para orquestar entornos R multi-contenedor con servicios y redes.

Cuándo Usar

  • Ejecutando aplicaciones R con servicios de base de datos (PostgreSQL, MySQL)
  • Configurando entornos de desarrollo con múltiples contenedores
  • Orquestando aplicaciones Shiny con servicios de soporte
  • Creando pipelines de análisis reproducibles con dependencias externas
  • Gestionando servicios interconectados para proyectos de ciencia de datos

Entradas

  • Requerido: Dockerfile para la aplicación R
  • Requerido: Lista de servicios necesarios (base de datos, caché, etc.)
  • Opcional: Archivos de configuración para cada servicio
  • Opcional: Esquemas de base de datos o scripts de inicialización
  • Opcional: Variables de entorno específicas por servicio

Procedimiento

Paso 1: Crear Estructura del Proyecto

Organizar archivos del proyecto para Docker Compose.

mkdir -p mi-proyecto/{app,db/init,config}
cd mi-proyecto

# Estructura:
# mi-proyecto/
#   docker-compose.yml
#   app/
#     Dockerfile
#     renv.lock
#     app.R
#   db/
#     init/
#       01-schema.sql
#   config/
#     .Renviron

Esperado: Estructura de directorios creada con separación clara entre servicios.

En caso de fallo: Verificar permisos de escritura, asegurar que los paths no contienen caracteres especiales.

Paso 2: Escribir docker-compose.yml

Definir servicios, redes y volúmenes.

version: '3.8'

services:
  app:
    build:
      context: ./app
      dockerfile: Dockerfile
    ports:
      - "3838:3838"
    environment:
      - DB_HOST=db
      - DB_PORT=5432
      - DB_NAME=mibase
      - DB_USER=postgres
      - DB_PASSWORD=secreto
    depends_on:
      db:
        condition: service_healthy
    volumes:
      - ./app:/app
      - r-libs:/usr/local/lib/R/site-library
    networks:
      - app-network

  db:
    image: postgres:16
    environment:
      POSTGRES_DB: mibase
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: secreto
    volumes:
      - postgres-data:/var/lib/postgresql/data
      - ./db/init:/docker-entrypoint-initdb.d
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 10s
      timeout: 5s
      retries: 5
    networks:
      - app-network

volumes:
  postgres-data:
  r-libs:

networks:
  app-network:
    driver: bridge

Esperado: Los servicios se definen con dependencias claras, healthchecks configurados, volúmenes para persistencia.

En caso de fallo: Validar sintaxis YAML, verificar que las imágenes existen en Docker Hub, comprobar que los puertos no están en uso.

Paso 3: Configurar Variables de Entorno

Usar archivos .env para configuración sensible.

# .env (gitignored)
POSTGRES_PASSWORD=mi_secreto_seguro
DB_NAME=mibase
SHINY_PORT=3838
# docker-compose.yml - referenciar variables
services:
  db:
    environment:
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}

Esperado: Variables de entorno separadas del código, archivo .env excluido de Git.

En caso de fallo: Verificar que .env está en .gitignore, comprobar sintaxis de variables con docker compose config.

Paso 4: Iniciar y Verificar Servicios

Compilar y ejecutar todos los servicios.

# Compilar e iniciar
docker compose up -d --build

# Verificar estado
docker compose ps

# Ver logs
docker compose logs -f app

# Verificar conectividad de red
docker compose exec app R -e "DBI::dbConnect(RPostgres::Postgres(), host='db', dbname='mibase')"

# Detener servicios
docker compose down

# Detener y eliminar volúmenes
docker compose down -v

Esperado: Todos los servicios en estado saludable, la aplicación R se conecta a la base de datos, los logs no muestran errores.

En caso de fallo: Revisar logs de servicios individuales (docker compose logs db), verificar healthchecks, comprobar resolución DNS entre contenedores.

Validación

  • docker compose up inicia todos los servicios sin errores
  • La aplicación R se conecta exitosamente a los servicios dependientes
  • Los volúmenes persisten datos entre reinicios
  • Los healthchecks reportan servicios saludables
  • Las variables de entorno se inyectan correctamente
  • La red permite comunicación entre servicios

Errores Comunes

  • Orden de inicio incorrecto: Usar depends_on con condition: service_healthy en lugar de solo depends_on.
  • Datos perdidos al detener: Usar volúmenes nombrados, no binds anónimos, para datos persistentes.
  • Conexión rechazada entre servicios: Usar nombres de servicio como hostnames, no localhost.
  • Puerto ya en uso: Verificar puertos disponibles antes de iniciar, usar puertos alternativos si es necesario.
  • Credenciales en repositorio: Nunca commit de archivos .env con secretos reales.

Habilidades Relacionadas

  • create-r-dockerfile - Crear Dockerfiles base para aplicaciones R
  • setup-compose-stack - Stacks Docker Compose generales multi-servicio
  • optimize-docker-build-cache - Optimizar tiempos de compilación Docker

GitHub 저장소

pjt222/agent-almanac
경로: i18n/es/skills/setup-docker-compose
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

연관 스킬

railway-docs

문서

이 스킬은 Railway의 기능, 작동 방식 또는 특정 문서 URL에 대한 질문에 답하기 위해 최신 Railway 문서를 가져옵니다. 개발자들이 Railway의 공식 소스로부터 정확하고 최신 정보를 직접 받을 수 있도록 보장합니다. 사용자가 Railway의 작동 방식을 묻거나 Railway 문서를 참조할 때 사용하세요.

스킬 보기

n8n-code-python

문서

이 Claude Skill은 n8n의 Code 노드에서 Python 코드를 작성할 때 전문적인 지침을 제공하며, 특히 Python 표준 라이브러리 사용과 n8n의 특수 구문인 `_input`, `_json`, `_node` 작업에 중점을 둡니다. 이는 개발자가 n8n 내에서 Python의 제한 사항을 이해하도록 돕고, 대부분의 워크플로에는 JavaScript 사용을 권장하면서도 특정 데이터 변환 요구사항에 대한 Python 솔루션을 제안합니다.

스킬 보기

archon

문서

Archon 스킬은 REST API를 통해 RAG 기반 시맨틱 검색과 프로젝트 관리를 제공합니다. 이 스킬을 사용하여 문서 검색, 계층적 프로젝트/태스크 관리, 문서 업로드 기능을 갖춘 지식 검색을 수행할 수 있습니다. 외부 문서를 검색할 때는 다른 소스를 사용하기 전에 항상 Archon을 최우선으로 활용하세요.

스킬 보기

n8n-code-javascript

문서

이 Claude Skill은 n8n의 Code 노드에서 JavaScript 코드 작성에 대한 전문적인 지침을 제공합니다. `$input`/`$json` 변수, HTTP 헬퍼, DateTime 처리와 같은 필수적인 n8n 특정 구문을 다루며 일반적인 오류를 해결합니다. Code 노드에서 사용자 정의 JavaScript 처리가 필요한 n8n 워크플로우를 개발할 때 활용하세요.

스킬 보기