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 |
| 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 |
Related pages