Spaces:
Build error
Build error
| # syntax=docker/dockerfile:1 | |
| ### | |
| FROM ubuntu:22.04 AS dind | |
| # https://docs.docker.com/engine/install/ubuntu/ | |
| RUN apt-get update && apt-get install -y \ | |
| ca-certificates \ | |
| curl \ | |
| && install -m 0755 -d /etc/apt/keyrings \ | |
| && curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc \ | |
| && chmod a+r /etc/apt/keyrings/docker.asc \ | |
| && echo \ | |
| "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ | |
| $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null | |
| RUN apt-get update && apt-get install -y \ | |
| docker-ce \ | |
| docker-ce-cli \ | |
| containerd.io \ | |
| docker-buildx-plugin \ | |
| docker-compose-plugin \ | |
| && rm -rf /var/lib/apt/lists/* \ | |
| && apt-get clean \ | |
| && apt-get autoremove -y | |
| ### | |
| FROM dind AS openhands | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| # | |
| RUN apt-get update && apt-get install -y \ | |
| bash \ | |
| build-essential \ | |
| curl \ | |
| git \ | |
| git-lfs \ | |
| software-properties-common \ | |
| make \ | |
| netcat \ | |
| sudo \ | |
| wget \ | |
| && rm -rf /var/lib/apt/lists/* \ | |
| && apt-get clean \ | |
| && apt-get autoremove -y | |
| # https://github.com/cli/cli/blob/trunk/docs/install_linux.md | |
| RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \ | |
| && chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \ | |
| && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ | |
| && apt-get update && apt-get -y install \ | |
| gh \ | |
| && rm -rf /var/lib/apt/lists/* \ | |
| && apt-get clean \ | |
| && apt-get autoremove -y | |
| # Python 3.12 | |
| RUN add-apt-repository ppa:deadsnakes/ppa \ | |
| && apt-get update \ | |
| && apt-get install -y python3.12 python3.12-venv python3.12-dev python3-pip \ | |
| && ln -s /usr/bin/python3.12 /usr/bin/python | |
| # NodeJS >= 22.x | |
| RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ | |
| && apt-get install -y nodejs | |
| # Poetry >= 1.8 | |
| RUN curl -fsSL https://install.python-poetry.org | python3.12 - \ | |
| && ln -s ~/.local/bin/poetry /usr/local/bin/poetry | |
| # | |
| RUN <<EOF | |
| #!/bin/bash | |
| printf "#!/bin/bash | |
| set +x | |
| uname -a | |
| docker --version | |
| gh --version | head -n 1 | |
| git --version | |
| # | |
| python --version | |
| echo node `node --version` | |
| echo npm `npm --version` | |
| poetry --version | |
| netcat -h 2>&1 | head -n 1 | |
| " > /version.sh | |
| chmod a+x /version.sh | |
| EOF | |
| ### | |
| FROM openhands AS dev | |
| RUN apt-get update && apt-get install -y \ | |
| dnsutils \ | |
| file \ | |
| iproute2 \ | |
| jq \ | |
| lsof \ | |
| ripgrep \ | |
| silversearcher-ag \ | |
| vim \ | |
| && rm -rf /var/lib/apt/lists/* \ | |
| && apt-get clean \ | |
| && apt-get autoremove -y | |
| WORKDIR /app | |
| # cache build dependencies | |
| RUN \ | |
| --mount=type=bind,source=./,target=/app/,rw \ | |
| <<EOF | |
| #!/bin/bash | |
| make -s clean | |
| make -s check-dependencies | |
| make -s install-python-dependencies | |
| # NOTE | |
| # node_modules are .dockerignore-d therefore not mountable | |
| # make -s install-frontend-dependencies | |
| EOF | |
| # | |
| CMD ["bash"] | |