Python 3.12, Node 20 LTS, Go 1.22, Rust 1.75. We auto-detect from manifests — you don't write a Dockerfile.
Python 3.12 (default for AgentCore)
Detected when requirements.txt or pyproject.toml is present. Entry-point auto-discovery checks main.py, app.py, agent.py, server.py, src/main.py, src/app.py, src/agent.py — first match wins. We bundle aws-opentelemetry-distro and bedrock-agentcore-starter-toolkit automatically.
# What we generate (you don't write this)
FROM public.ecr.aws/docker/library/python:3.12-slim
RUN pip install --no-cache-dir \
aws-opentelemetry-distro \
bedrock-agentcore-starter-toolkit
WORKDIR /app
COPY . .
RUN pip install --no-cache-dir -r requirements.txt
ENV PYTHONUNBUFFERED=1
ENTRYPOINT ["opentelemetry-instrument", "python", "<your-entry>.py"]Node 20 LTS
Detected via package.json. Entry-point comes from package.json#main, then package.json#scripts.start (we parse `node X.js` / `tsx X.ts` / `bun X.ts`), then index.ts/index.js. TypeScript is supported via tsx; we install peers automatically.
# What we generate
FROM public.ecr.aws/docker/library/node:20-slim
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev || npm install --omit=dev
COPY . .
ENV NODE_ENV=production
ENTRYPOINT ["node", "<your-entry>.js"]
Go 1.22
Detected via go.mod. We compile a static binary and wrap it. ~1.5s cold-starts.
Rust 1.75
Detected via Cargo.toml. Built in --release mode. ~1.8s cold-starts.
Bring your own Docker (Department)
On the Department plan, you can push your own image to our ECR and point AgentDepot at it. We still wire IAM, Secrets Manager, and Composio — you just own the build.