Skip to main content
Verify Docker connectivity and build all base isol8:<runtime> images. Optionally build custom images with pre-installed dependencies.
isol8 setup [options]

What It Does

  1. Verify Docker — Pings the Docker daemon to confirm it’s running and accessible.
  2. Build base images — Builds all 5 runtime images from the multi-stage docker/Dockerfile. Each runtime is a separate build target (python, node, bun, deno, bash).
  3. Build custom images — If package flags are provided (via CLI flags or config.dependencies), builds custom images with dependencies pre-installed.

Options

--python
string
Comma-separated Python packages to install via pip.
isol8 setup --python numpy,pandas,scipy
--node
string
Comma-separated Node.js packages to install via npm.
isol8 setup --node lodash,express,axios
--bun
string
Comma-separated Bun packages to install via bun.
isol8 setup --bun zod,hono,drizzle-orm
--deno
string
Comma-separated Deno module URLs to pre-cache via deno cache.
isol8 setup --deno https://deno.land/std/path/mod.ts
--bash
string
Comma-separated Alpine apk packages to install.
isol8 setup --bash curl,git,jq,wget

Custom Images

When you provide package flags (or have dependencies in your config file), isol8 builds a custom image tagged isol8:<runtime>-custom. These custom images are automatically preferred over base images via the resolveImage() logic — if isol8:python-custom exists, all Python executions use it without any additional flags. For example, after running:
isol8 setup --python numpy,pandas
The image isol8:python-custom is created with numpy and pandas pre-installed. All subsequent Python executions automatically use this image.

How Custom Images Are Built

Custom images extend the base image with runtime-specific install commands. The generated Dockerfile for each runtime:
RuntimeGenerated Dockerfile
pythonFROM isol8:python
RUN pip install --no-cache-dir numpy pandas
nodeFROM isol8:node
RUN npm install -g lodash express
bunFROM isol8:bun
RUN bun install -g zod hono
denoFROM isol8:deno
RUN deno cache https://deno.land/std/path/mod.ts
bashFROM isol8:bash
RUN apk add --no-cache jq curl
CLI flags are merged with any packages already specified in config.dependencies, so both sources contribute to the custom image.

Base Images

All base images are built from a multi-stage Dockerfile in the docker/ directory. The shared base stage is Alpine 3.21 and includes:
  • tini as the init process (PID 1 signal handling)
  • curl and ca-certificates
  • The HTTP/HTTPS filtering proxy (proxy.mjs) copied to /usr/local/bin/
  • /sandbox as the working directory
  • tini as the entrypoint
Each runtime stage extends base with its specific runtime binary:
StageBaseInstalls
pythonbasepython3, py3-pip
nodebasenodejs, npm
bunbasebash, unzip, libstdc++, libgcc, then downloads Bun via install script
denodenoland/deno:alpinetini, curl, ca-certificates, proxy.mjs
bashbasebash
The Deno stage uses denoland/deno:alpine as its base image instead of the shared base stage. It independently installs tini, curl, and ca-certificates, and copies proxy.mjs — mirroring the setup from base but starting from the official Deno Alpine image.