|
--- |
|
title: Docker |
|
--- |
|
|
|
Docker support is currently experimental. Running Open Interpreter inside of a Docker container may not function as you expect. Let us know on [Discord](https://discord.com/invite/6p3fD6rBVm) if you encounter errors or have suggestions to improve Docker support. |
|
|
|
We are working on an official integration for Docker in the coming weeks. For now, you can use Open Interpreter in a sandboxed Docker container environment using the following steps: |
|
|
|
1. If you do not have Docker Desktop installed, [install it](https://www.docker.com/products/docker-desktop) before proceeding. |
|
|
|
2. Create a new directory and add a file named `Dockerfile` in it with the following contents: |
|
|
|
```dockerfile |
|
# Start with Python 3.11 |
|
FROM python:3.11 |
|
|
|
# Replace <your_openai_api_key> with your own key |
|
ENV OPENAI_API_KEY <your_openai_api_key> |
|
|
|
# Install Open Interpreter |
|
RUN pip install open-interpreter |
|
``` |
|
|
|
3. Run the following commands in the same directory to start Open Interpreter. |
|
|
|
```bash |
|
docker build -t openinterpreter . |
|
docker run -d -it --name interpreter-instance openinterpreter interpreter |
|
docker attach interpreter-instance |
|
``` |
|
|
|
## Mounting Volumes |
|
|
|
This is how you let it access _some_ files, by telling it a folder (a volume) it will be able to see / manipulate. |
|
|
|
To mount a volume, you can use the `-v` flag followed by the path to the directory on your host machine, a colon, and then the path where you want to mount the directory in the container. |
|
|
|
```bash |
|
docker run -d -it -v /path/on/your/host:/path/in/the/container --name interpreter-instance openinterpreter interpreter |
|
``` |
|
|
|
Replace `/path/on/your/host` with the path to the directory on your host machine that you want to mount, and replace `/path/in/the/container` with the path in the Docker container where you want to mount the directory. |
|
|
|
Here's a simple example: |
|
|
|
```bash |
|
docker run -d -it -v $(pwd):/files --name interpreter-instance openinterpreter interpreter |
|
``` |
|
|
|
In this example, `$(pwd)` is your current directory, and it is mounted to a `/files` directory in the Docker container (this creates that folder too). |
|
|
|
## Flags |
|
|
|
To add flags to the command, just append them after `interpreter`. For example, to run the interpreter with custom instructions, run the following command: |
|
|
|
```bash |
|
docker-compose run --rm oi interpreter --custom_instructions "Be as concise as possible" |
|
``` |
|
|
|
Please note that some flags will not work. For example, `--config` will not work, because it cannot open the config file in the container. If you want to use a config file other than the default, you can create a `config.yml` file inside of the same directory, add your custom config, and then run the following command: |
|
|
|
```bash |
|
docker-compose run --rm oi interpreter --config_file config.yml |
|
``` |