Containers
Containers, like Docker, are a way to package software and its dependencies into a standardized unit for software development. Containers are lightweight, standalone, and executable software packages that include everything needed to run an application: code, runtime, system tools, system libraries, and settings.
Requirements
GenAIScript uses Docker to orchestrate the containers.
Start a container
Start by creating and starting a new container. GenAIScript will pull the container image on demand, removing the container when it is no longer needed.
Custom image
By default, the container uses the python:alpine image, which provides a minimal python environment. You can change the image using the image
option.
Building images
Use docker build to create reusable images.
You can build a custom image from a GitHub repository with a single command in your scripts.
Then use the repo as your image name
Disable auto-purge
By default, the container is removed when it is no longer needed. You can disable this behavior using the persistent
option.
Enable network
By default, the container network is disabled, and web requests wonโt work. This is the safest solution; if you need to install additional packages, it is recommended to create an image with all the necessary software included.
You can enable network access using networkEnabled
.
Port bindings
You can bind container ports to host ports and access web servers running in the container.
For example, this configuration will map the host 8088
port to 80
on the container
and you will be able to access a local web server using http://localhost:8088/
.
Then
Run a command
You can run a command in the container using the exec
method. It returns the exit code, standard output and error streams.
Read and write files
The container has a volume mounted in the host file system, allowing reading and writing files to the container.
Copy files to container
You can also copy files from the host to the container.
Disconnect network
If you created the container with network enabled, you can disconnect the network to isolate the container.
Using containers in tools
The containerized tools guide shows how to use containers in tools to handle untrusted text securely.