スキル一覧に戻る

setup-docker-compose

pjt222
更新日 2 days ago
8 閲覧
17
2
17
GitHubで表示
ドキュメントaiapimcpdata

について

このスキルは、マルチコンテナR開発環境向けにDocker Composeを設定し、サービス定義、ボリューム、ネットワーキング、環境変数を扱います。RをデータベースやAPIと併用する場合や、再現可能な開発環境を構築する際にご利用ください。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にコピー&ペーストしてスキルをインストールします

ドキュメント

設 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 リポジトリ

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

関連スキル

railway-docs

ドキュメント

このスキルは、Railwayの機能や仕様、特定のドキュメントURLに関する質問に答えるために、最新のRailwayドキュメントを取得します。開発者がRailwayの公式情報源から正確かつ最新の情報を直接受け取れるようにします。ユーザーがRailwayの動作方法について尋ねたり、Railwayドキュメントを参照する際にご利用ください。

スキルを見る

n8n-code-python

ドキュメント

このClaudeスキルは、n8nのコードノードでPythonコードを記述するための専門的なガイダンスを提供します。具体的には、Pythonの標準ライブラリの使用方法や、`_input`、`_json`、`_node`といったn8n独自の構文の扱い方を解説します。n8n環境内におけるPythonの制限事項を開発者が理解できるよう支援し、ほとんどのワークフローではJavaScriptの使用を推奨しながらも、特定のデータ変換ニーズに対応するPythonソリューションを提案します。

スキルを見る

archon

ドキュメント

Archonスキルは、RAGを活用したセマンティック検索とプロジェクト管理をREST APIを通じて提供します。ドキュメントの検索、階層的なプロジェクト/タスクの管理、ドキュメントアップロード機能を備えたナレッジ検索の実行にご利用いただけます。外部ドキュメントを検索する際は、他の情報源を利用する前に常にArchonを最優先で使用してください。

スキルを見る

n8n-code-javascript

ドキュメント

このClaudeスキルは、n8nのCodeノードでJavaScriptコードを書くための専門的なガイダンスを提供します。`$input`/`$json`変数、HTTPヘルパー、DateTime処理などの重要なn8n固有の構文を網羅し、一般的なエラーのトラブルシューティングも行います。CodeノードでカスタムJavaScript処理を必要とするn8nワークフローを開発する際にご利用ください。

スキルを見る