← Sandbox SDK / sandbox / configuration
Справочник по Dockerfile
Настройте образ контейнера песочницы с помощью собственных пакетов, инструментов и конфигураций, расширив базовый образ среды выполнения.
Базовые образы
Sandbox SDK предлагает несколько вариантов образов на основе Ubuntu. Выберите тот, который подходит для вашей задачи:
| Изображение | Суффикс тега | Сценарий использования |
|---|---|---|
| По умолчанию | (нет) | Облегченный образ для нагрузок JavaScript/TypeScript |
| Python | -python |
Data science, ML, выполнение кода Python |
| OpenCode | -opencode |
ИИ-агенты для программирования с 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Образ по умолчанию
Образ по умолчанию оптимизирован для нагрузок на JavaScript и TypeScript:
- Базовый образ Ubuntu 22.04 LTS
- Node.js 20 LTS с npm
- Bun 1.x (среда выполнения JavaScript/TypeScript)
- Системные утилиты: curl, wget, git, jq, zip, unzip, file, procps, ca-certificates
Образ Python
-python вариант включает всё, что есть в образе по умолчанию, а также:
- Python 3.11 с pip и venv
- Предустановленные пакеты: matplotlib, numpy, pandas, ipython
образ OpenCode
-opencode вариант включает всё, что есть в образе по умолчанию, а также:
- OpenCode CLI ↗ для ИИ-агентов, пишущих код
Создание пользовательского образа
Создайте 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/*Обновите wrangler.jsonc чтобы указать ваш Dockerfile:
{
"containers": [
{
"class_name": "Sandbox",
"image": "./Dockerfile",
},
],
}Когда вы выполняете wrangler dev или wrangler deploy, Wrangler автоматически собирает ваш Docker-образ и отправляет его в реестр контейнеров Cloudflare. Собирать и публиковать образы вручную не нужно.
Использование произвольных базовых образов
Вы можете добавить возможности sandbox в любой образ Docker с помощью автономного бинарного файла. Такой подход позволяет использовать уже имеющиеся образы, не завися от базовых образов 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 бинарный файл запускает сервер HTTP API, обеспечивающий взаимодействие с SDK. При необходимости вы можете указать собственную команду запуска:
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"]При использовании CMD, бинарный файл sandbox запускает вашу команду как дочерний процесс с корректной передачей сигналов.
Пользовательские скрипты запуска
Для более сложных сценариев запуска создайте собственный стартовый скрипт:
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"]Базовый образ уже задаёт правильные ENTRYPOINT, поэтому вам нужно указать только CMD. Бинарный файл песочницы запускает сервер HTTP API, а затем создаёт ваш CMD как дочерний процесс с корректной передачей сигналов.
#!/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Дополнительные материалы
- Управление изображениями - Сборка и отправка образов в реестр Cloudflare
- Конфигурация Wrangler - Использование пользовательских образов в wrangler.jsonc
- Документация Docker ↗ - Полный синтаксис Dockerfile
- Концепции контейнера - Изучение среды выполнения