Dockerfile 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. FROM ubuntu:24.04
  2. ARG DEBIAN_FRONTEND=noninteractive
  3. # WARNING: DON'T PUT A SPACE AFTER ANY BACKSLASH OR APT WILL BREAK
  4. # One -q produces output suitable for logging (mostly hides
  5. # progress indicators)
  6. RUN apt-get -yqq update && \
  7. apt-get -yqq install \
  8. -o Dpkg::Options::="--force-confdef" \
  9. -o Dpkg::Options::="--force-confold" \
  10. cloc \
  11. curl \
  12. gcc \
  13. git-core \
  14. gosu \
  15. iproute2 \
  16. # Needed for mysqlclient
  17. libmysqlclient-dev \
  18. libpq-dev \
  19. pkg-config \
  20. python3 \
  21. python3-colorama \
  22. python3-dev \
  23. python3-dnspython \
  24. python3-packaging \
  25. python3-pip \
  26. python3-psutil \
  27. python3-psycopg2 \
  28. python3-requests \
  29. siege \
  30. software-properties-common && \
  31. # Ubuntu's equivalent packages are too old and/or broken.
  32. pip3 install \
  33. --break-system-packages \
  34. docker==7.0.0 \
  35. mysqlclient==2.2.4 \
  36. pymongo==4.7.2
  37. # Collect resource usage statistics
  38. ARG DOOL_VERSION=v1.3.1
  39. WORKDIR /tmp
  40. RUN curl -LSs "https://github.com/scottchiefbaker/dool/archive/${DOOL_VERSION}.tar.gz" | \
  41. tar --strip-components=1 -xz && \
  42. ./install.py
  43. # create group and user
  44. ARG GROUP_ID
  45. ARG USER_ID
  46. RUN groupadd -g "$GROUP_ID" user || true && \
  47. useradd -m -u "$USER_ID" -g "$GROUP_ID" -s /bin/bash user || true
  48. ENV FWROOT=/FrameworkBenchmarks USER_ID="$USER_ID"
  49. ENV PYTHONPATH="$FWROOT"
  50. ENTRYPOINT ["/FrameworkBenchmarks/entrypoint.sh"]