Getting Started Using Docker
This guide provides step-by-step instructions on how to set up and run the Docker environment for your GPT-Engineer project.
Prerequisites
- Docker installed on your machine.
- Git (for cloning the repository).
Setup Instructions
Using Docker CLI
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.
Using Docker Compose
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
Debugging
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.