INTEGRITY Dokumentace

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-opencode

Výchozí image

Výchozí image je optimalizovaný pro zátěž JavaScriptu a TypeScriptu:

Image Pythonu

-python varianta obsahuje vše, co výchozí obraz, a navíc:

Obraz OpenCode

-opencode varianta obsahuje vše, co výchozí obraz, a navíc:

Vytvoření vlastního image

Vytvořte Dockerfile v kořenovém adresáři vašeho projektu:

Dockerfile
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:

wrangler.jsonc
{
	"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:

Dockerfile
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:

Dockerfile
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:

Dockerfile
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ů.

startup.sh
#!/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)
wait