diff --git a/docs/modules/usage/custom_sandbox_guide.md b/docs/modules/usage/custom_sandbox_guide.md index 9101c08f0a..c689711e90 100644 --- a/docs/modules/usage/custom_sandbox_guide.md +++ b/docs/modules/usage/custom_sandbox_guide.md @@ -5,7 +5,7 @@ The default OpenDevin sandbox comes with a [minimal ubuntu configuration](https: Your use case may need additional software installed by default. There are two ways you can do so: -1. Use an existing image from docker hub. For instance, if you want to have `nodejs` installed, you can do so by using the `node:21` image. +1. Use an existing image from docker hub. For instance, if you want to have `nodejs` installed, you can do so by using the `node:20` image. 2. Creating your own custom docker image. If you want to take the first approach, you can skip the next section. @@ -60,14 +60,14 @@ sandbox_container_image="custom_image" For sandbox_container_image, you can specify either: 1. The name of your custom image that you built in the previous step (e.g., "custom_image") -2. A pre-existing image from Docker Hub (e.g., "node:21" if you want a sandbox with Node.js pre-installed) +2. A pre-existing image from Docker Hub (e.g., "node:20" if you want a sandbox with Node.js pre-installed) ## Run Run OpenDevin by running ```make run``` in the top level directory. Navigate to ```localhost:3001``` and check if your desired dependencies are available. -In the case of the example above, running ```node -v``` in the terminal produces ```v18.19.1``` +In the case of the example above, running ```node -v``` in the terminal produces ```v20.15.0``` Congratulations! @@ -83,16 +83,21 @@ The custom image is built using [_build_sandbox_image()](https://github.com/Open ```python dockerfile_content = ( - f'FROM {base_image}\n' - 'RUN apt update && apt install -y openssh-server wget sudo\n' - 'RUN mkdir -p -m0755 /var/run/sshd\n' - 'RUN mkdir -p /opendevin && mkdir -p /opendevin/logs && chmod 777 /opendevin/logs\n' - 'RUN wget "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"\n' - 'RUN bash Miniforge3-$(uname)-$(uname -m).sh -b -p /opendevin/miniforge3\n' - 'RUN bash -c ". /opendevin/miniforge3/etc/profile.d/conda.sh && conda config --set changeps1 False && conda config --append channels conda-forge"\n' - 'RUN echo "export PATH=/opendevin/miniforge3/bin:$PATH" >> ~/.bashrc\n' - 'RUN echo "export PATH=/opendevin/miniforge3/bin:$PATH" >> /opendevin/bash.bashrc\n' - ).strip() + f'FROM {base_image}\n' + 'RUN apt update && apt install -y openssh-server wget sudo\n' + 'RUN mkdir -p -m0755 /var/run/sshd\n' + 'RUN mkdir -p /opendevin && mkdir -p /opendevin/logs && chmod 777 /opendevin/logs\n' + 'RUN echo "" > /opendevin/bash.bashrc\n' + 'RUN if [ ! -d /opendevin/miniforge3 ]; then \\\n' + ' wget "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" && \\\n' + ' bash Miniforge3-$(uname)-$(uname -m).sh -b -p /opendevin/miniforge3 && \\\n' + ' chmod -R g+w /opendevin/miniforge3 && \\\n' + ' bash -c ". /opendevin/miniforge3/etc/profile.d/conda.sh && conda config --set changeps1 False && conda config --append channels conda-forge"; \\\n' + ' fi\n' + 'RUN /opendevin/miniforge3/bin/pip install --upgrade pip\n' + 'RUN /opendevin/miniforge3/bin/pip install jupyterlab notebook jupyter_kernel_gateway flake8\n' + 'RUN /opendevin/miniforge3/bin/pip install python-docx PyPDF2 python-pptx pylatexenc openai\n' +).strip() ``` > Note: the name of the image is modified via [_get_new_image_name()](https://github.com/OpenDevin/OpenDevin/blob/main/opendevin/runtime/docker/image_agnostic_util.py#L63) and it is the modified name that is searched for on subsequent runs.