← Sandbox SDK / sandbox / configuration
Referenční dokumentace Dockerfile
Přizpůsobte si image kontejneru sandboxu vlastními balíčky, nástroji a konfiguracemi tak, že rozšíříte základní runtime image.
Základní obrazy
Sandbox SDK nabízí několik variant image založených na Ubuntu. Vyberte tu, která odpovídá vašemu případu použití:
| Obrázek | Přípona tagu | Případ použití |
|---|---|---|
| Výchozí | (žádné) | Odlehčený image pro úlohy JavaScript/TypeScript |
| Python | -python |
Data science, ML, spouštění kódu Python |
| OpenCode | -opencode |
AI agenti pro programování s OpenCode CLI |
# Default - lean, no Python
FROM docker.io/cloudflare/sandbox:0.7.0
# Python - includes Python 3.11 + data science packages
FROM docker.io/cloudflare/sandbox:0.7.0-python
# OpenCode - includes OpenCode CLI for AI coding
FROM docker.io/cloudflare/sandbox:0.7.0-opencodeVýchozí image
Výchozí image je optimalizovaný pro zátěž JavaScriptu a TypeScriptu:
- Základ Ubuntu 22.04 LTS
- Node.js 20 LTS s npm
- Bun 1.x (JavaScript/TypeScript runtime)
- Systémové nástroje: curl, wget, git, jq, zip, unzip, file, procps, ca-certificates
Image Pythonu
-python varianta obsahuje vše, co výchozí obraz, a navíc:
- Python 3.11 s pip a venv
- Předinstalované balíčky: matplotlib, numpy, pandas, ipython
Obraz OpenCode
-opencode varianta obsahuje vše, co výchozí obraz, a navíc:
- OpenCode CLI ↗ pro kódovací agenty s podporou AI
Vytvoření vlastního image
Vytvořte Dockerfile v kořenovém adresáři vašeho projektu:
FROM docker.io/cloudflare/sandbox:0.7.0-python
# Install additional Python packages
RUN pip install --no-cache-dir \
scikit-learn==1.3.0 \
tensorflow==2.13.0 \
transformers==4.30.0
# Install Node.js packages globally
RUN npm install -g typescript ts-node prettier
# Install system packages
RUN apt-get update && apt-get install -y \
postgresql-client \
redis-tools \
&& rm -rf /var/lib/apt/lists/*Aktualizujte wrangler.jsonc pro odkaz na váš Dockerfile:
{
"containers": [
{
"class_name": "Sandbox",
"image": "./Dockerfile",
},
],
}Když spustíte wrangler dev nebo wrangler deploy, Wrangler automaticky sestaví váš Docker obraz a odešle ho do registru kontejnerů Cloudflare. Obrazy tedy nemusíte sestavovat ani publikovat ručně.
Použití libovolných základních images
Pomocí samostatného binárního souboru můžete přidat funkce sandboxu do libovolného obrazu Docker. Díky tomu můžete používat vlastní existující obrazy, aniž byste byli závislí na základních obrazech Cloudflare:
FROM your-custom-image:tag
# Copy the sandbox binary from the official image
COPY --from=docker.io/cloudflare/sandbox:0.7.0 /container-server/sandbox /sandbox
ENTRYPOINT ["/sandbox"] /sandbox binárka spustí server HTTP API, který umožňuje komunikaci SDK. Volitelně můžete spustit vlastní spouštěcí příkaz:
FROM node:20-slim
COPY --from=docker.io/cloudflare/sandbox:0.7.0 /container-server/sandbox /sandbox
# Copy your application
COPY . /app
WORKDIR /app
ENTRYPOINT ["/sandbox"]
CMD ["node", "server.js"]Při použití CMD, binární soubor sandboxu spustí váš příkaz jako podřízený proces se správným předáváním signálů.
Vlastní startovací skripty
Pro složitější posloupnosti spouštění vytvořte vlastní spouštěcí skript:
FROM docker.io/cloudflare/sandbox:0.7.0-python
COPY my-app.js /workspace/my-app.js
COPY startup.sh /workspace/startup.sh
RUN chmod +x /workspace/startup.sh
CMD ["/workspace/startup.sh"]Základní image již nastavuje správné ENTRYPOINT, takže stačí zadat pouze CMD. Binárka sandboxu spustí HTTP API server a poté spustí váš CMD jako podřízený proces se správným předáváním signálů.
#!/bin/bash
# Start your services in the background
node /workspace/my-app.js &
# Start additional services
redis-server --daemonize yes
until redis-cli ping; do sleep 1; done
# Keep the script running (the sandbox binary handles the API server)
waitSouvisející zdroje
- Správa obrázků - Sestavení a nahrávání obrazů do registru Cloudflare
- Konfigurace Wrangleru - Používání vlastních images v wrangler.jsonc
- Dokumentace Docker ↗ - Kompletní syntaxe Dockerfile
- Koncepty kontejnerů - Pochopení běhového prostředí