setup-docker-compose
À propos
Cette compétence configure Docker Compose pour des environnements de développement R multi-conteneurs, en gérant les définitions de services, les volumes, le réseau et les variables d'environnement. Utilisez-la pour exécuter R conjointement avec des bases de données ou des API, ou pour créer des configurations de développement reproductibles. Elle aide à orchestrer les services basés sur R et à gérer les configurations de développement par rapport à celles de production.
Installation rapide
Claude Code
Recommandé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-docker-composeCopiez et collez cette commande dans Claude Code pour installer cette compétence
Documentation
設 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})。
敗則:變不解,確 .env 與 docker-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 CLI:
docker compose(v2)vsdocker-compose(v1)。用 v2 - WSL 徑掛:自 WSL 掛 Windows 目用
/mnt/c/...徑 - 命名卷 vs 綁掛:命名卷跨重建持;綁掛即映主之變
參
create-r-dockerfile— 立 compose 所引之 Dockerfilecontainerize-mcp-server— MCP 服之 compose 配optimize-docker-build-cache— 速 compose 之建
Dépôt GitHub
Compétences associées
railway-docs
DocumentationCette compétence récupère la documentation actuelle de Railway pour répondre aux questions sur les fonctionnalités, le fonctionnement ou des URL spécifiques de la documentation. Elle garantit que les développeurs reçoivent des informations précises et à jour directement depuis les sources officielles de Railway. Utilisez-la lorsque les utilisateurs demandent comment fonctionne Railway ou font référence à la documentation de Railway.
n8n-code-python
DocumentationCette compétence Claude offre un accompagnement expert pour écrire du code Python dans les nœuds Code de n8n, en particulier pour utiliser la bibliothèque standard de Python et travailler avec la syntaxe spéciale de n8n comme `_input`, `_json` et `_node`. Elle aide les développeurs à comprendre les limites de Python dans n8n et recommande d'utiliser JavaScript pour la plupart des workflows, tout en proposant des solutions Python pour des besoins spécifiques de transformation de données.
archon
DocumentationLa compétence Archon offre une recherche sémantique alimentée par RAG et une gestion de projet via une API REST. Utilisez-la pour interroger la documentation, gérer des projets/tâches hiérarchiques et effectuer de la recherche de connaissances avec des capacités de téléchargement de documents. Priorisez toujours Archon en premier lors de la recherche dans une documentation externe avant d'utiliser d'autres sources.
n8n-code-javascript
DocumentationCette compétence Claude fournit des conseils d'expert pour écrire du code JavaScript dans les nœuds Code d'n8n. Elle couvre la syntaxe essentielle spécifique à n8n comme les variables `$input`/`$json`, les assistants HTTP et la gestion des DateTime, tout en résolvant les erreurs courantes. Utilisez-la lors du développement de workflows n8n nécessitant un traitement JavaScript personnalisé dans les nœuds Code.
