Backup-bdg/OpenHands
0
1# syntax=docker/dockerfile:12 3###4FROM ubuntu:22.04 AS dind5 6# https://docs.docker.com/engine/install/ubuntu/7RUN apt-get update && apt-get install -y \8 ca-certificates \9 curl \10 && install -m 0755 -d /etc/apt/keyrings \11 && curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc \12 && chmod a+r /etc/apt/keyrings/docker.asc \13 && echo \14 "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \15 $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null16 17RUN apt-get update && apt-get install -y \18 docker-ce \19 docker-ce-cli \20 containerd.io \21 docker-buildx-plugin \22 docker-compose-plugin \23 && rm -rf /var/lib/apt/lists/* \24 && apt-get clean \25 && apt-get autoremove -y26 27###28FROM dind AS openhands29 30ENV DEBIAN_FRONTEND=noninteractive31 32#33RUN apt-get update && apt-get install -y \34 bash \35 build-essential \36 curl \37 git \38 git-lfs \39 software-properties-common \40 make \41 netcat \42 sudo \43 wget \44 && rm -rf /var/lib/apt/lists/* \45 && apt-get clean \46 && apt-get autoremove -y47 48# https://github.com/cli/cli/blob/trunk/docs/install_linux.md49RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \50 && chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \51 && 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 \52 && apt-get update && apt-get -y install \53 gh \54 && rm -rf /var/lib/apt/lists/* \55 && apt-get clean \56 && apt-get autoremove -y57 58# Python 3.1259RUN add-apt-repository ppa:deadsnakes/ppa \60 && apt-get update \61 && apt-get install -y python3.12 python3.12-venv python3.12-dev python3-pip \62 && ln -s /usr/bin/python3.12 /usr/bin/python63 64# NodeJS >= 22.x65RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \66 && apt-get install -y nodejs67 68# Poetry >= 1.869RUN curl -fsSL https://install.python-poetry.org | python3.12 - \70 && ln -s ~/.local/bin/poetry /usr/local/bin/poetry71 72#73RUN <<EOF74#!/bin/bash75printf "#!/bin/bash76set +x77uname -a78docker --version79gh --version | head -n 180git --version81#82python --version83echo node `node --version`84echo npm `npm --version`85poetry --version86netcat -h 2>&1 | head -n 187" > /version.sh88chmod a+x /version.sh89EOF90 91###92FROM openhands AS dev93 94RUN apt-get update && apt-get install -y \95 dnsutils \96 file \97 iproute2 \98 jq \99 lsof \100 ripgrep \101 silversearcher-ag \102 vim \103 && rm -rf /var/lib/apt/lists/* \104 && apt-get clean \105 && apt-get autoremove -y106 107WORKDIR /app108 109# cache build dependencies110RUN \111 --mount=type=bind,source=./,target=/app/,rw \112 <<EOF113#!/bin/bash114make -s clean115make -s check-dependencies116make -s install-python-dependencies117 118# NOTE119# node_modules are .dockerignore-d therefore not mountable120# make -s install-frontend-dependencies121EOF122 123#124CMD ["bash"]125 