install-packages¶
Install packages and create a reusable image.
Description¶
The install-packages prompt provides instructions for installing packages in a container and tagging the result for future reuse. It follows the prepare-and-tag pattern.
Parameters¶
Parameter |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
- |
Packages to install (space-separated) |
|
string |
No |
|
Base image to use |
Generated Instructions¶
When invoked with:
{
"packages": "flask gunicorn",
"image": "python:3.11-slim"
}
Returns:
Install packages in a container:
1. Check if base image `tag:python:3.11-slim` exists with `list_images`
2. If not, import it with `import_image`
3. Run `pip install flask gunicorn` with `disposable=false` to save the image
4. Tag the result for reuse (e.g., `claude/common/python/custom-deps:3.11`)
The returned `result_image` can be used for subsequent commands.
Example Usage¶
Python Packages¶
{
"prompt": "install-packages",
"args": {
"packages": "numpy pandas matplotlib scikit-learn"
}
}
Web Framework Stack¶
{
"prompt": "install-packages",
"args": {
"packages": "fastapi uvicorn sqlalchemy alembic"
}
}
System Packages¶
For system packages, use a different base image and package manager:
{
"prompt": "install-packages",
"args": {
"packages": "curl wget git",
"image": "ubuntu:22.04"
}
}
Note: For Ubuntu, the agent should adapt to use apt install instead of pip install.
Implementation Notes¶
The agent should:
Check if base image exists with
list_imagesImport if needed with
import_imageInstall packages with
run:{ "command": "pip install <packages>", "image": "tag:<base_image>", "disposable": false }
Tag the result with
set_tag:{ "image_uuid": "<result_image>", "tag": "common/<purpose>/<base_image>" }
See Also¶
prepare-environment - Full environment preparation
build-project - Build with dependencies
multi-stage-build - Complex multi-stage builds