Skip to main content Skills Marketplace コミュニティが作成したAIスキルを発見・探索
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/prime-radiant-inc/greenfield --skill container-executionコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
Zipをダウンロード ダウンロード中... name container-execution description Infrastructure skill for containerized target execution. Runtime detection, container lifecycle, security restrictions, interaction patterns.
Container Execution
All runtime analysis targets run inside containers. Never execute untrusted code on the host.
Runtime Detection
if command -v docker &>/dev/null; then
RUNTIME="docker"
elif command -v podman &>/dev/null; then
RUNTIME="podman"
else
echo "No container runtime found. Runtime observation unavailable."
fi
If neither Docker nor Podman is available, skip all agents that require containers. This is not an error — runtime observation is additive.
Container Naming
Container name: greenfield-${WORKSPACE}-target
Deterministic (same workspace = same name)
Does not leak the target's identity
Allows multiple concurrent analyses
Container Lifecycle
digraph container_lifecycle {
rankdir=TB;
"Start container lifecycle" [shape=doublecircle];
"Container runtime available?" [shape=diamond];
"Build target image" [shape=box];
"Build succeeded?" [shape=diamond];
"Start container with resource limits" [shape=box];
"Verify container is running" [shape=box];
"Container running?" [shape=diamond];
"Execute agent commands via docker exec" [shape=box];
"Stop and remove container" [shape=box];
"Lifecycle complete" [shape=doublecircle];
"Skip runtime mode, continue static analysis" [shape=ellipse];
"Log failure, skip runtime mode" [shape=ellipse];
"Start container lifecycle" -> "Container runtime available?";
"Container runtime available?" -> "Build target image" [label="yes"];
"Container runtime available?" -> "Skip runtime mode, continue static analysis" [label="no"];
"Build target image" -> "Build succeeded?";
"Build succeeded?" -> "Start container with resource limits" [label="yes"];
"Build succeeded?" -> "Log failure, skip runtime mode" [label="no"];
"Start container with resource limits" -> "Verify container is running";
"Verify container is running" -> "Container running?";
"Container running?" -> "Execute agent commands via docker exec" [label="yes"];
"Container running?" -> "Log failure, skip runtime mode" [label="no"];
"Execute agent commands via docker exec" -> "Stop and remove container";
"Stop and remove container" -> "Lifecycle complete";
}
1. Build the Image The Dockerfile is at workspace/raw/runtime/Dockerfile. It is generated based on target type:
FROM node:lts-slim
WORKDIR /app
COPY target/ /app/
RUN npm install --production 2>/dev/null || true
RUN npm link 2>/dev/null || true
RUN mkdir -p /output
ENTRYPOINT ["sleep", "infinity"]
FROM python:3.12-slim
WORKDIR /app
COPY target/ /app/
RUN pip install --no-cache-dir -r requirements.txt 2>/dev/null || true
RUN pip install --no-cache-dir -e . 2>/dev/null || true
RUN mkdir -p /output
ENTRYPOINT ["sleep", "infinity"]
Compiled Binary (Go, Rust, C):
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates file strace && rm -rf /var/lib/apt/lists/*
COPY target/binary /usr/local/bin/target
RUN chmod +x /usr/local/bin/target
RUN mkdir -p /output
ENTRYPOINT ["sleep", "infinity"]
FROM node:lts-slim
WORKDIR /app
COPY target/ /app/
RUN npm install --production 2>/dev/null || true
RUN mkdir -p /output
EXPOSE 3000
CMD ["npm", "start"]
$RUNTIME build -t greenfield-${WORKSPACE} -target \
-f workspace/raw/runtime/Dockerfile .
If the build fails, log the error to workspace/raw/runtime/build-log.txt and mark runtime mode as unavailable. The pipeline continues with other modes.
2. Start the Container $RUNTIME run -d \
--name greenfield-${WORKSPACE} -target \
--memory=2g --cpus=2 --pids-limit=256 \
--network=none --read-only \
--tmpfs /tmp:rw,noexec,nosuid,size=256m \
-v "$(pwd) /workspace/raw/runtime:/output:rw" \
greenfield-${WORKSPACE} -target
$RUNTIME run -d \
--name greenfield-${WORKSPACE} -target \
--memory=2g --cpus=2 --pids-limit=256 \
--network=none \
-p 127.0.0.1:3000:3000 \
-v "$(pwd) /workspace/raw/runtime:/output:rw" \
greenfield-${WORKSPACE} -target
3. Verify Running $RUNTIME inspect --format='{{.State.Running}}' greenfield-${WORKSPACE} -target
4. Cleanup $RUNTIME stop --time =10 greenfield-${WORKSPACE} -target 2>/dev/null || true
$RUNTIME rm greenfield-${WORKSPACE} -target 2>/dev/null || true
Command Execution All target interaction goes through docker exec (or podman exec).
Basic Command timeout 30 $RUNTIME exec greenfield-${WORKSPACE} -target \
sh -c 'command args 2>&1' \
> workspace/raw/runtime/cli/output.txt
With Timeout Handling timeout 30 $RUNTIME exec greenfield-${WORKSPACE} -target \
sh -c 'command args 2>&1' > output.txt 2>&1
EXIT_CODE=$?
if [ $EXIT_CODE -eq 124 ]; then
echo "TIMEOUT: Command killed after 30 seconds." >> output.txt
fi
With Environment Variables $RUNTIME exec -e "DEBUG=true" -e "CONFIG_PATH=/app/config.json" \
greenfield-${WORKSPACE} -target sh -c 'target-command 2>&1'
With Piped Input echo "user input here" | \
timeout 30 $RUNTIME exec -i greenfield-${WORKSPACE} -target \
sh -c 'target-command' > output.txt 2>&1
Pre-Execution Checklist Before executing commands, verify:
Container is running: $RUNTIME inspect --format='{{.State.Running}}' greenfield-${WORKSPACE}-target
Output directory is mounted: $RUNTIME exec greenfield-${WORKSPACE}-target test -d /output
Exploration Patterns
CLI Exploration
timeout 30 $RUNTIME exec $CONTAINER sh -c 'target --help 2>&1' > cli/help.txt
timeout 30 $RUNTIME exec $CONTAINER sh -c 'target --version 2>&1' > cli/version.txt
Web Endpoint Discovery
curl -s -D- http://127.0.0.1:3000/ > web/root-response.txt
for endpoint in /api /health /swagger.json /openapi.json; do
STATUS=$(curl -s -o /dev/null -w '%{http_code}' "http://127.0.0.1:3000${endpoint} " )
echo "${endpoint} -> ${STATUS} " >> web/endpoint-scan.txt
done
File Extraction
$RUNTIME cp greenfield-${WORKSPACE} -target:/path/to/file \
workspace/raw/runtime/extracted/
$RUNTIME exec greenfield-${WORKSPACE} -target find /app -type f -name '*.log' 2>/dev/null
Error Handling Build failure: Log to build-log.txt, skip runtime mode, continue with static analysis.
Command timeout (exit 124): Capture partial output, note timeout, move to next command.
if [ "$($RUNTIME inspect --format='{{.State.Running}}' $CONTAINER 2>/dev/null) " != "true" ]; then
$RUNTIME logs $CONTAINER > crash-log.txt 2>&1
$RUNTIME start $CONTAINER
fi
Container errors are behavioral observations — document them as data, not just failures.
Resource Limits Resource Default Notes Memory 2 GB --memory=2gCPU 2 cores --cpus=2Command timeout 30 seconds timeout 30 on docker execPID limit 256 --pids-limit=256Network None --network=none (default)GPU Never Not granted Privileged Never Not granted
Security Restrictions (Non-Negotiable)
Never use --privileged
Never mount host paths outside workspace/raw/runtime/
Never bind ports to 0.0.0.0 (always 127.0.0.1)
Never grant GPU access
Never disable seccomp/AppArmor
All captured output goes to workspace/raw/runtime/
Avoid including raw credential values in captured output (use judgment, not regex)