FROM ubuntu:24.04 ARG DEBIAN_FRONTEND=noninteractive # WARNING: DON'T PUT A SPACE AFTER ANY BACKSLASH OR APT WILL BREAK # One -q produces output suitable for logging (mostly hides # progress indicators) RUN apt-get -yqq update && \ apt-get -yqq install \ -o Dpkg::Options::="--force-confdef" \ -o Dpkg::Options::="--force-confold" \ cloc \ curl \ gcc \ git-core \ gosu \ iproute2 \ # Needed for mysqlclient libmysqlclient-dev \ libpq-dev \ pkg-config \ python3 \ python3-colorama \ python3-dev \ python3-dnspython \ python3-packaging \ python3-pip \ python3-psutil \ python3-psycopg2 \ python3-requests \ siege \ software-properties-common && \ # Ubuntu's equivalent packages are too old and/or broken. pip3 install \ --break-system-packages \ docker==7.0.0 \ mysqlclient==2.2.4 \ pymongo==4.7.2 # Collect resource usage statistics ARG DOOL_VERSION=v1.3.1 WORKDIR /tmp RUN curl -LSs "https://github.com/scottchiefbaker/dool/archive/${DOOL_VERSION}.tar.gz" | \ tar --strip-components=1 -xz && \ ./install.py # create group and user ARG GROUP_ID ARG USER_ID RUN groupadd -g "$GROUP_ID" user || true && \ useradd -m -u "$USER_ID" -g "$GROUP_ID" -s /bin/bash user || true ENV FWROOT=/FrameworkBenchmarks USER_ID="$USER_ID" ENV PYTHONPATH="$FWROOT" ENTRYPOINT ["/FrameworkBenchmarks/entrypoint.sh"]