Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,18 @@ command_executor:
# 環境変数 COMMAND_EXECUTOR_ENABLED で上書き可能
enabled: true

# 利用可能な実行環境(環境名: イメージ名)
# 計画フェーズでLLMがプロジェクトに適した環境を選択します
environments:
python: "coding-agent-executor-python:latest"
miniforge: "coding-agent-executor-miniforge:latest"
node: "coding-agent-executor-node:latest"
java: "coding-agent-executor-java:latest"
go: "coding-agent-executor-go:latest"

# デフォルト環境(環境選択に失敗した場合)
default_environment: "python"

# MCP Server設定
mcp_server:
# サーバー名
Expand All @@ -376,6 +388,7 @@ command_executor:
# Docker実行環境設定
docker:
# ベースイメージ(環境変数 EXECUTOR_BASE_IMAGE で上書き可能)
# ※environments設定が優先されます。環境選択に失敗した場合のフォールバック用
base_image: "ubuntu:25.04"

# リソース制限
Expand Down
54 changes: 54 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,60 @@ services:
retries: 3
start_period: 30s

# === 実行環境イメージ(ビルド専用、executor-buildプロファイル) ===
# 計画フェーズでLLMが選択する実行環境イメージ
# ビルドコマンド: docker compose --profile executor-build build

# Python実行環境イメージ
executor-python:
build:
context: ./docker/executor-python
dockerfile: Dockerfile
image: coding-agent-executor-python:latest
profiles:
- executor-build
command: ["echo", "Build only"]

# Miniforge(conda)実行環境イメージ
executor-miniforge:
build:
context: ./docker/executor-miniforge
dockerfile: Dockerfile
image: coding-agent-executor-miniforge:latest
profiles:
- executor-build
command: ["echo", "Build only"]

# Node.js実行環境イメージ
executor-node:
build:
context: ./docker/executor-node
dockerfile: Dockerfile
image: coding-agent-executor-node:latest
profiles:
- executor-build
command: ["echo", "Build only"]

# Java実行環境イメージ
executor-java:
build:
context: ./docker/executor-java
dockerfile: Dockerfile
image: coding-agent-executor-java:latest
profiles:
- executor-build
command: ["echo", "Build only"]

# Go実行環境イメージ
executor-go:
build:
context: ./docker/executor-go
dockerfile: Dockerfile
image: coding-agent-executor-go:latest
profiles:
- executor-build
command: ["echo", "Build only"]

volumes:
rabbitmq_data:
user-config-data:
Expand Down
26 changes: 26 additions & 0 deletions docker/executor-go/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Go実行環境イメージ
# Goプロジェクト用のDockerイメージ
FROM golang:1.22-bookworm

# 共通パッケージのインストール
# git: バージョン管理
# curl/wget: ファイルダウンロード
# jq: JSON処理
# tree: ディレクトリ構造表示
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
curl \
wget \
jq \
tree \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*

# 作業ディレクトリの設定
WORKDIR /workspace

# プロジェクト配置用ディレクトリを作成
RUN mkdir -p /workspace/project

# コンテナを永続実行するためのENTRYPOINT
ENTRYPOINT ["sleep", "infinity"]
26 changes: 26 additions & 0 deletions docker/executor-java/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Java実行環境イメージ
# Java/Kotlinプロジェクト用のDockerイメージ
FROM eclipse-temurin:21-jdk-jammy

# 共通パッケージのインストール
# git: バージョン管理
# curl/wget: ファイルダウンロード
# jq: JSON処理
# tree: ディレクトリ構造表示
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
curl \
wget \
jq \
tree \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*

# 作業ディレクトリの設定
WORKDIR /workspace

# プロジェクト配置用ディレクトリを作成
RUN mkdir -p /workspace/project

# コンテナを永続実行するためのENTRYPOINT
ENTRYPOINT ["sleep", "infinity"]
29 changes: 29 additions & 0 deletions docker/executor-miniforge/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Miniforge(conda)実行環境イメージ
# 科学計算・データサイエンスプロジェクト用のDockerイメージ
FROM condaforge/miniforge3:latest

# 共通パッケージのインストール
# git: バージョン管理
# curl/wget: ファイルダウンロード
# jq: JSON処理
# tree: ディレクトリ構造表示
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
curl \
wget \
jq \
tree \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*

# 作業ディレクトリの設定
WORKDIR /workspace

# プロジェクト配置用ディレクトリを作成
RUN mkdir -p /workspace/project

# condaの初期設定
RUN conda init bash

# コンテナを永続実行するためのENTRYPOINT
ENTRYPOINT ["sleep", "infinity"]
26 changes: 26 additions & 0 deletions docker/executor-node/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Node.js実行環境イメージ
# JavaScript/TypeScriptプロジェクト用のDockerイメージ
FROM node:20-slim

# 共通パッケージのインストール
# git: バージョン管理
# curl/wget: ファイルダウンロード
# jq: JSON処理
# tree: ディレクトリ構造表示
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
curl \
wget \
jq \
tree \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*

# 作業ディレクトリの設定
WORKDIR /workspace

# プロジェクト配置用ディレクトリを作成
RUN mkdir -p /workspace/project

# コンテナを永続実行するためのENTRYPOINT
ENTRYPOINT ["sleep", "infinity"]
26 changes: 26 additions & 0 deletions docker/executor-python/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Python実行環境イメージ
# コーディングエージェントの実行環境として使用するPython用Dockerイメージ
FROM python:3.11-slim-bookworm

# 共通パッケージのインストール
# git: バージョン管理
# curl/wget: ファイルダウンロード
# jq: JSON処理
# tree: ディレクトリ構造表示
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
curl \
wget \
jq \
tree \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*

# 作業ディレクトリの設定
WORKDIR /workspace

# プロジェクト配置用ディレクトリを作成
RUN mkdir -p /workspace/project

# コンテナを永続実行するためのENTRYPOINT
ENTRYPOINT ["sleep", "infinity"]
Loading