This guide provides step-by-step instructions on how to set up and run the Docker environment for your GPT-Engineer project.
- Docker installed on your machine.
- Git (for cloning the repository).
-
Clone the Repository
git clone https://github.com/gpt-engineer-org/gpt-engineer.git cd gpt-engineer
-
Build the Docker Image
docker build --rm -t gpt-engineer -f docker/Dockerfile .
-
Run the Docker Container
docker run -it --rm -e OPENAI_API_KEY="YOUR_OPENAI_KEY" -v ./your-project:/project gpt-engineer
Replace
YOUR_OPENAI_KEY
with your actual OpenAI API key. The-v
flag mounts your localyour-project
directory inside the container. Replace this with your actual project directory. Ensure this directory contains all necessary files, including theprompt
file.
-
Clone the Repository (if not already done)
git clone https://github.com/gpt-engineer-org/gpt-engineer.git cd gpt-engineer
-
Build and Run using Docker Compose
docker-compose -f docker-compose.yml build docker-compose run --rm gpt-engineer
Set the
OPENAI_API_KEY
in thedocker/docker-compose.yml
using an.env
file or as an environment variable. Mount your project directory to the container using volumes, e.g.,"./projects/example:/project"
where./projects/example
is the path to your project directory. -
Another alternative using Docker Compose
Since there is only one
docker-compose.yml
file, you could run it without the -f option.docker compose up -d --build
- To build and start the containers defined in yourdocker-compose.yml
file in detached modedocker compose up -d
- To start the containers defined in yourdocker-compose.yml
file in detached modedocker compose down
- To stop and remove all containers, networks, and volumes associated with thedocker-compose.yml
docker compose restart
- To restart the containers defined in thedocker-compose.yml
file
To facilitate debugging, you can run a shell inside the built Docker image:
docker run -it --entrypoint /bin/bash gpt-engineer
This opens a shell inside the Docker container, allowing you to execute commands and inspect the environment manually.