Skip to content

Default Image Contents

The embedded Dockerfile builds a base image (Ubuntu 24.04) with the tools listed below. This image is used when no workspace image, defaults.image or [base] dockerfile is configured: step 5 of image resolution. jailoc unpacks it into the VM image cache and boots it as the root file system of the workspace VM.

Core tool versions (Node.js, the npm language servers) are pinned as ARG declarations at the top of the Dockerfile.

The image has no ENTRYPOINT, CMD or EXPOSE. jailoc-guest is the init of the VM and starts sessions over SSH.


Runtimes

Tool Package / Source Binary
Node.js Official tarball node, npm, npx, corepack
Python 3 python3 (apt) python3

Language servers

Server Install method Binary
typescript-language-server npm install -g typescript-language-server
pyright npm install -g pyright, pyright-langserver
yaml-language-server npm install -g yaml-language-server
bash-language-server npm install -g bash-language-server

CLI tools

Tool Package / Source Binary
ripgrep ripgrep (apt) rg
fd fd-find (apt) fdfind
jq jq (apt) jq
git git (apt) git
openssh-client openssh-client (apt) ssh
gpg gpg (apt) gpg
curl curl (apt) curl
sudo sudo (apt) sudo
unzip unzip (apt) unzip
xz-utils xz-utils (apt) xz

Docker layer

The base image contains no Docker. For workspaces with enable_docker = true (off by default), jailoc adds a separate layer with Docker CE static binaries, checksum-verified, and nftables, the firewall backend of dockerd; see Image Resolution. jailoc-guest starts dockerd from these binaries inside the workspace VM. Versions are pinned in the embedded docker.Dockerfile.

Tool Source Binary
Docker CE download.docker.com static release docker, dockerd, containerd, runc, docker-init, docker-proxy in /usr/local/bin
Docker Buildx docker/buildx GitHub release docker buildx (CLI plugin)
Docker Compose docker/compose GitHub release docker compose (CLI plugin)

Coding agent

The base image contains no coding agent. jailoc installs the workspace's agent (OpenCode by default) in a separate layer on top of it; see Coding agents and Image Resolution.

User and environment

Item Value
Agent user agent, UID 1000, home /home/agent, shell /bin/bash
sudo passwordless for agent (disabled at runtime by protect_git)
PATH /home/agent/.local/bin prepended

System components

Tool Purpose
ca-certificates TLS certificate store; a forwarded ca_bundle is added to it
libatomic1 Required by the Node.js runtime