diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..2378da1f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,35 @@ +FROM ubuntu:20.04 + +# https://github.com/princeton-nlp/SWE-bench/issues/15#issuecomment-1815392192 +RUN apt-get update && \ + apt-get install -y bash gcc git jq wget && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +RUN git config --global user.email "swebench@pnlp.org" +RUN git config --global user.name "swebench" + +RUN apt update && apt install -y build-essential + +# Create new user +RUN useradd -ms /bin/bash swe-bench +USER swe-bench +WORKDIR /home/swe-bench + +# Setup Conda +ENV PATH="/home/swe-bench/miniconda3/bin:${PATH}" +ARG PATH="/home/swe-bench/miniconda3/bin:${PATH}" +RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh \ + && mkdir ~/.conda \ + && bash miniconda.sh -b \ + && rm -f miniconda.sh +RUN conda --version + +# Setup SWE-Bench Env +COPY environment.yml . +RUN conda env create -f environment.yml + +# Some missing packages +RUN pip install datasets python-dotenv gitpython + +CMD ["/bin/bash"] diff --git a/harness/run_docker_interactive.sh b/harness/run_docker_interactive.sh new file mode 100755 index 00000000..64020c84 --- /dev/null +++ b/harness/run_docker_interactive.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +DOCKER_IMAGE=xingyaoww/swe-bench +WORK_DIR=`pwd` + +docker run \ + -it \ + --rm \ + --user $(id -u):$(id -g) \ + --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 \ + -v $WORK_DIR:/swe-bench \ + $DOCKER_IMAGE \ + bash -c "cd /swe-bench && bash"