Zurück zu Fähigkeiten

setup-docker-compose

pjt222
Aktualisiert Yesterday
2 Ansichten
17
2
17
Auf GitHub ansehen
Dokumentationaiapimcpdata

Über

Diese Fähigkeit konfiguriert Docker Compose für Multi-Container-R-Entwicklungsumgebungen, verwaltet Dienstdefinitionen, Volumes, Netzwerke und Umgebungsvariablen. Verwenden Sie sie, wenn Sie R zusammen mit Datenbanken oder APIs betreiben oder reproduzierbare Entwicklungsumgebungen einrichten möchten. Sie hilft bei der Orchestrierung R-basierter Dienste und beim Management von Entwicklungs- gegenüber Produktionskonfigurationen.

Schnellinstallation

Claude Code

Empfohlen
Primär
npx skills add pjt222/agent-almanac -a claude-code
Plugin-BefehlAlternativ
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternativ
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/setup-docker-compose

Kopieren Sie diesen Befehl und fügen Sie ihn in Claude Code ein, um diese Fähigkeit zu installieren

Dokumentation

設 Docker Compose

為 R 多容開發與展之境配 Docker Compose。

用時

  • R 與他服(庫、API)並行乃用
  • 設可重之開發境乃用
  • 為 R 之 MCP 服容編排乃用
  • 管環境變與卷掛乃用

  • 必要:R 服之 Dockerfile
  • 必要:所掛之項目目
  • 可選:他服(庫、緩、網服)
  • 可選:環境變之配

第一步:立 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 存附 R 服之定,含項目目與 renv 緩之卷掛、與 R 庫徑之環境變。

敗則:YAML 語法誤,以 docker compose config 驗。確縮以空(非 tab),含特字之串值皆引。

第二步:增他服(若需)

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:

得:他服(如 PostgreSQL)已定附其卷、環境變、端映。R 服有 depends_on 指新服。

敗則:庫服啟敗,察 docker compose logs postgres 之初誤。驗 POSTGRES_PASSWORD_FILE 等指有效之密,或為開發改 POSTGRES_PASSWORD

第三步:配網

為需 localhost 之服(如 MCP 服):

services:
  r-dev:
    network_mode: "host"

為隔之網:

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

networks:
  app-network:
    driver: bridge

得:網配宜:host 模為需 localhost 之服(MCP 服),或橋網附明端映為隔之服。

敗則:服不能通,驗皆於同網。橋網用服名為主機名(如 postgres,非 localhost)。host 模用 localhost 確端口無衝。

第四步:管環境變

.env 文件(git-ignored):

R_VERSION=4.5.0
GITHUB_PAT=your_token_here

於 compose 引:

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

得:.env 文件存(git-ignored)附項目特之變,docker-compose.yml 引之以 env_file 或變插(${VAR})。

敗則:變不解,確 .envdocker-compose.yml 同目。行 docker compose config 觀解後之配。

第五步:建而行

# 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

得:諸服啟。R 會話可訪。

敗則:察 docker compose logs 之啟誤。常患:端口衝、缺環境變。

第六步:為開發立 override

docker-compose.override.yml 為本地開發設:

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

此自合於 docker-compose.yml

得:docker-compose.override.yml 存附開發特之設(額卷、調試旗),自施於 docker compose up

敗則:override 不效,驗文名確為 docker-compose.override.yml。行 docker compose config 確合。明 override 文件用 docker compose -f docker-compose.yml -f custom-override.yml up

  • docker compose build 成而無誤
  • docker compose up 啟諸服
  • 卷掛正共文件於主與容
  • 環境變於容內可得
  • 諸服可相通
  • docker compose down 潔止諸物

  • 卷掛之權:Linux 容或以 root 立文件。用 user: 指或修權
  • 端口衝:察主上既用同端之服
  • Docker Desktop vs CLIdocker compose(v2)vs docker-compose(v1)。用 v2
  • WSL 徑掛:自 WSL 掛 Windows 目用 /mnt/c/...
  • 命名卷 vs 綁掛:命名卷跨重建持;綁掛即映主之變

  • create-r-dockerfile — 立 compose 所引之 Dockerfile
  • containerize-mcp-server — MCP 服之 compose 配
  • optimize-docker-build-cache — 速 compose 之建

GitHub Repository

pjt222/agent-almanac
Pfad: i18n/wenyan/skills/setup-docker-compose
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Verwandte Skills

railway-docs

Dokumentation

Diese Fähigkeit ruft aktuelle Railway-Dokumentation ab, um Fragen zu Funktionen, Funktionalität oder spezifischen Dokumentations-URLs zu beantworten. Sie stellt sicher, dass Entwickler genaue, aktuelle Informationen direkt aus den offiziellen Quellen von Railway erhalten. Nutzen Sie sie, wenn Nutzer fragen, wie Railway funktioniert oder auf Railway-Dokumentation verweisen.

Skill ansehen

n8n-code-python

Dokumentation

Dieses Claude Skill bietet fachkundige Anleitung zum Schreiben von Python-Code in n8n-Code-Nodes, insbesondere für die Verwendung der Python-Standardbibliothek und den Umgang mit n8ns spezieller Syntax wie `_input`, `_json` und `_node`. Es hilft Entwicklern, die Grenzen von Python innerhalb von n8n zu verstehen, empfiehlt JavaScript für die meisten Workflows und bietet gleichzeitig Python-Lösungen für spezifische Datenumwandlungsanforderungen.

Skill ansehen

archon

Dokumentation

Die Archon-Funktion bietet semantische Suche auf RAG-Basis und Projektmanagement über eine REST-API. Nutzen Sie sie für das Abfragen von Dokumentation, die Verwaltung hierarchischer Projekte/Aufgaben und die Durchführung von Wissenabruf mit Dokumenten-Upload-Fähigkeiten. Priorisieren Sie stets Archon zuerst bei der Suche in externer Dokumentation, bevor Sie andere Quellen verwenden.

Skill ansehen

n8n-code-javascript

Dokumentation

Diese Claude-Skill bietet fachkundige Anleitung für das Schreiben von JavaScript-Code in n8n-Code-Nodes. Sie behandelt wesentliche n8n-spezifische Syntax wie `$input`/`$json`-Variablen, HTTP-Helfer und DateTime-Verarbeitung und hilft bei der Fehlerbehebung häufiger Probleme. Nutzen Sie sie bei der Entwicklung von n8n-Workflows, die eine benutzerdefinierte JavaScript-Verarbeitung in Code-Nodes erfordern.

Skill ansehen