Packages¶
Asylum can install additional packages into a project-specific Docker image layer. When packages are configured, Asylum builds a project image on top of the base image.
Package Types¶
Packages are configured under each kit's config:
kits:
apt:
packages:
- libpq-dev
- redis-tools
node:
packages:
- "@anthropic-ai/claude-mcp-server-filesystem"
- tsx
python:
packages:
- pandas
- numpy
shell:
build:
- "curl -fsSL https://deno.land/install.sh | sh"
| Kit | Key | Installer | Runs as |
|---|---|---|---|
apt |
packages |
apt-get install |
root |
node |
packages |
npm install -g |
claude |
python |
packages |
uv tool install |
claude |
shell |
build |
Executed as-is | claude |
How It Works¶
When any packages are configured, Asylum:
- Generates a project Dockerfile (
FROM asylum:latest+ install commands) - Builds a project image tagged
asylum:proj-<hash> - Caches the image — rebuilds only when packages change
If no packages are configured, the base image (asylum:latest) is used directly.
Custom Build Commands¶
The shell kit's build key runs arbitrary commands during the project image build. Use this for tools that don't have a standard package manager:
kits:
shell:
build:
- "curl -fsSL https://deno.land/install.sh | sh"
- "go install golang.org/x/tools/gopls@latest"
Each command is executed as your host user. Commands must not contain newlines.