Dockerfile 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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 install \
  7. --no-install-recommends \
  8. -o Dpkg::Options::="--force-confdef" \
  9. -o Dpkg::Options::="--force-confold" \
  10. -qqUy \
  11. cloc \
  12. curl \
  13. gcc \
  14. git-core \
  15. gosu \
  16. iproute2 \
  17. # Needed for mysqlclient
  18. libmysqlclient-dev \
  19. libpq-dev \
  20. pkg-config \
  21. python3 \
  22. python3-colorama \
  23. python3-dev \
  24. python3-dnspython \
  25. python3-packaging \
  26. python3-pip \
  27. python3-psutil \
  28. python3-psycopg2 \
  29. python3-requests \
  30. siege \
  31. software-properties-common && \
  32. # Ubuntu's equivalent packages are too old and/or broken.
  33. pip3 install \
  34. --break-system-packages \
  35. docker==7.0.0 \
  36. mysqlclient==2.2.4 \
  37. pymongo==4.7.2
  38. # Collect resource usage statistics
  39. ARG DOOL_VERSION=v1.3.1
  40. WORKDIR /tmp
  41. RUN curl -LSs "https://github.com/scottchiefbaker/dool/archive/${DOOL_VERSION}.tar.gz" | \
  42. tar --strip-components=1 -xz && \
  43. ./install.py
  44. # create group and user
  45. ARG GROUP_ID
  46. ARG USER_ID
  47. RUN groupadd -g "$GROUP_ID" user || true && \
  48. useradd -m -u "$USER_ID" -g "$GROUP_ID" -s /bin/bash user || true
  49. ENV FWROOT=/FrameworkBenchmarks USER_ID="$USER_ID"
  50. ENV PYTHONPATH="$FWROOT"
  51. ENTRYPOINT ["/FrameworkBenchmarks/entrypoint.sh"]