From 3962fca2e3b2884e252bc08cdc4ec2804cf0b5ed Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Thu, 11 Apr 2024 13:13:11 -0700 Subject: [PATCH] util-docker: Add ubuntu-24.04_all-deps Docker Change-Id: I5917c446cacc25d1a333b5cf8147ee78b112aeb3 --- util/dockerfiles/docker-bake.hcl | 9 ++- util/dockerfiles/docker-compose.yaml | 5 ++ .../ubuntu-24.04_all-dependencies/Dockerfile | 66 +++++++++++++++++++ 3 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 util/dockerfiles/ubuntu-24.04_all-dependencies/Dockerfile diff --git a/util/dockerfiles/docker-bake.hcl b/util/dockerfiles/docker-bake.hcl index 2af05bb546..7cd05ce211 100644 --- a/util/dockerfiles/docker-bake.hcl +++ b/util/dockerfiles/docker-bake.hcl @@ -44,7 +44,7 @@ group "default" { } group "ubuntu-releases" { - targets=["ubuntu-22-04_all-dependencies", "ubuntu-20-04_all-dependencies", "ubuntu-22-04_min-dependencies"] + targets=["ubuntu-24-04_all-dependencies", "ubuntu-22-04_all-dependencies", "ubuntu-20-04_all-dependencies", "ubuntu-22-04_min-dependencies"] } group "clang-compilers" { @@ -90,6 +90,13 @@ target "systemc" { tags = ["${IMAGE_URI}/systemc-env:${TAG}"] } +target "ubuntu-24-04_all-dependencies" { + inherits = ["common"] + dockerfile = "Dockerfile" + context = "ubuntu-24.04_all-dependencies" + tags = ["${IMAGE_URI}/ubuntu-24.04_all-dependencies:${TAG}"] +} + target "ubuntu-22-04_all-dependencies" { inherits = ["common"] dockerfile = "Dockerfile" diff --git a/util/dockerfiles/docker-compose.yaml b/util/dockerfiles/docker-compose.yaml index fe1275f02b..29b1a4b778 100644 --- a/util/dockerfiles/docker-compose.yaml +++ b/util/dockerfiles/docker-compose.yaml @@ -37,6 +37,11 @@ services: context: ubuntu-22.04_min-dependencies dockerfile: Dockerfile image: ghcr.io/gem5/ubuntu-22.04_min-dependencies:latest + ubuntu-24.04_all-dependencies: + build: + context: ubuntu-24.04_all-dependencies + dockerfile: Dockerfile + image: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest gcc-8: build: context: ubuntu-20.04_gcc-version diff --git a/util/dockerfiles/ubuntu-24.04_all-dependencies/Dockerfile b/util/dockerfiles/ubuntu-24.04_all-dependencies/Dockerfile new file mode 100644 index 0000000000..fc157261ab --- /dev/null +++ b/util/dockerfiles/ubuntu-24.04_all-dependencies/Dockerfile @@ -0,0 +1,66 @@ +# Copyright (c) 2024 The Regents of the University of California +# All Rights Reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer; +# redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution; +# neither the name of the copyright holders nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +FROM --platform=${BUILDPLATFORM} ubuntu:24.04 + +ENV DEBIAN_FRONTEND=noninteractive +RUN apt -y update && apt -y upgrade && apt -y install \ + build-essential \ + scons \ + python3-dev \ + git \ + pre-commit \ + zlib1g \ + zlib1g-dev \ + libprotobuf-dev \ + protobuf-compiler \ + libprotoc-dev \ + libgoogle-perftools-dev \ + libboost-all-dev \ + libhdf5-serial-dev \ + python3-pydot \ + python3-venv \ + python3-tk \ + mypy \ + m4 \ + libcapstone-dev \ + libpng-dev \ + libelf-dev \ + pkg-config \ + wget \ + cmake \ + doxygen + +# pre-commit, as installed via apt in 24.04, attempts to create a cache +# directory at "${HOME}/.cache/pre-commit". If running docker with non-root, +# the HOME directory is set to "/". Since non-root users do not have permission +# to write to this directory, an error is returned when pre-commit is executed. +# pre-commit's default cache directory can be changed via the `XDG_CACHE_HOME` +# enivoronment variable. Here we set it to "/tmp". With this pre-commit will +# create a "/tmp/pre-commit" directory to use for caching. "/tmp" was chosen +# as it's a directory any user can access and write to. Given this only stores +# caching information, the "/tmp" directory being wiped is not a concern. +ENV XDG_CACHE_HOME=/tmp/