From dee6db433e5adc26399065b40364093974ae9ecd Mon Sep 17 00:00:00 2001 From: thinkwee Date: Thu, 26 Oct 2023 11:31:40 +0800 Subject: [PATCH] add docker start introduction & add GUI support for docker --- Dockerfile | 5 ++++- README.md | 5 +++++ misc/xquartz.jpg | Bin 0 -> 98399 bytes wiki.md | 39 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 misc/xquartz.jpg diff --git a/Dockerfile b/Dockerfile index 66fac75a..3a9df3c6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,6 +7,9 @@ WORKDIR /app # Copy the current directory contents into the container at /app COPY . /app +# Install necessary libraries for GUI support +RUN apt-get update && apt-get install -y python3-tk x11-apps + # Install the project dependencies RUN pip install --no-cache-dir -r requirements.txt @@ -18,4 +21,4 @@ ENV OPENAI_API_KEY=your_OpenAI_API_key EXPOSE 8000 # Set an entry point that runs a shell for interactive mode -ENTRYPOINT ["/bin/bash"] +ENTRYPOINT ["/bin/bash"] \ No newline at end of file diff --git a/README.md b/README.md index 86c692ad..360e6392 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,8 @@ https://github.com/OpenBMB/ChatDev/assets/11889052/80d01d2f-677b-4399-ad8b-f7af9 ## ⚡️ Quickstart +### 🖥️ Quickstart with terminal + To get started, follow these steps: 1. **Clone the GitHub Repository:** Begin by cloning the repository using the command: @@ -105,6 +107,9 @@ To get started, follow these steps: cd WareHouse/project_name_DefaultOrganization_timestamp python main.py ``` + +### 🐳 Quickstart with Docker +- We thank [ManindraDeMel](https://github.com/ManindraDeMel) for providing Docker support. Please see [Docker guide](wiki.md#docker-start). ## ✨️ Advanced Skills diff --git a/misc/xquartz.jpg b/misc/xquartz.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7af24d0d2db6205d12e35dc31c08c782effa1c18 GIT binary patch literal 98399 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�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 fAwFD7;o^(|QB(d*t5$tf8Ny literal 0 HcmV?d00001 diff --git a/wiki.md b/wiki.md index d3f5ea29..5512a15e 100644 --- a/wiki.md +++ b/wiki.md @@ -84,6 +84,45 @@ then go to [Local Demo Website](http://127.0.0.1:8000/) to see an online visuali ![Replay](misc/replay.gif) +## Docker Start +- You can use docker for a quick and safe use of ChatDev. You will need some extra steps to allow executing GUI program in docker since ChatDev often create software with GUI and execute them in the Test Phase. + +### Install Docker +- Please refer to the [Docker Official Website](https://www.docker.com/get-started/) for installing Docker. + +### Prepare GUI connection between Host and Docker +- Take macOS for example, + - install socat and xquartz, you may need to restart the computer after installing the xquartz + ```commandline + brew install socat xquartz + ``` + - open xquartz and go into the settings, allow connections from network clients + - ![xquartz](misc/xquartz.jpg) + - run following command on the host computer and keep it. + ```commandline + socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\" + ``` + - run following command on the host computer to check your ip (the address of inet). + ```commandline + ifconfig en0 + ``` + +### Build Docker images +- under the ChatDev folder, run + ```commandline + docker build -t chatdev:latest . + ``` + it will generate a 400MB+ docker image named chatdev. + +### Run Docker +- run following command to create and go into a container + ```commandline + docker run -it -p 8000:8000 -e OPENAI_API_KEY=YOUR_OPENAI_KEY -e DISPLAY=YOUR_IP:0 chatdev:latest + ``` + ⚠️ You need to replace ``YOUR_OPENAI_KEY`` with your key and replace ``YOUR_IP`` with your inet address. +- Then you can just playing ChatDev with ``python3 run.py`` +- You can run ``python3 online_log/app.py &`` first to start a background program so that you can use online log with a WebUI. + ## Customization - You can customize your company in three kinds of granularity: