Commit Graph

8 Commits

Author SHA1 Message Date
Bobby R. Bruce
ccd9beb661 util-docker: Remove 22.04 min-dep Dockerfile
We only test the latest LTS Ubuntu release with min-deps. With 24.04, we
no longer require the 22.04 min dependencies image.

Change-Id: I4b3d668c1f9d10c2b6071848e6daada6c763b5e7
2024-04-13 14:16:41 -07:00
Bobby R. Bruce
d091c64db1 util-docker: Add Ubuntu 24.04 min-dep Docker
Change-Id: Ia5cb4f2fd54ce53494ab95705b4f6006648d7eba
2024-04-13 14:08:13 -07:00
Bobby R. Bruce
3962fca2e3 util-docker: Add ubuntu-24.04_all-deps Docker
Change-Id: I5917c446cacc25d1a333b5cf8147ee78b112aeb3
2024-04-13 14:08:13 -07:00
Bobby R. Bruce
392a2b4ffa misc: Add a DevContainer specification to the gem5 repo (#911)
Speciftying a DevContainer in gem5 allows for users to quickly create an
environment in which they can develop, build, and run gem5. The
".devcontainer/devcontainer.json" file specifies the properties of the
container. In this commit they are as follows:

1. The Docker image ghcr.io/gem5/devcontainer. This is built from
"util/dockerfiles/devcontainer". This Dockerfile provides all
dependencies and a pre-built gem5 binary from the current main branch
(added to "/usr/local/bin"). In order to support this Docker container
on different platforms we use the Docker multi-platform feature. As
such, this must be built using `docker buildx bake devcontainer --push`
which reads the `docker-bake.hcl file for the specification of the
multi-platform image.
2. Visual Studio extensions. This is a list of Visual Studio Code
extensions useful when developing gem5. They are automatically added the
Visual Studio dev container.
3. Features. Features are enhancemets that can be added to a
DevContainer. Normally they are libraries and other commonly used tools
to be included in the Container. As we have our dependencies specified
in the Dockerfile here we select one to enable Docker inside the
container, one to enable the Github CLI, one to improve Linting, and
finally one to enable the vscode CLI.
4. The On Create Command : This command allows us to specify commands to
be run after the DevContainer is created. In this case we execute
".devcontainer/on-create.sh" which, right now, refreshes the git index
and installed the pre-commit checks.
2024-04-12 10:37:17 -07:00
Bobby R. Bruce
cfef2ac23b util-docker: Fix end-of-line error in docker-bake.hcl
Change-Id: I2c792f35d8c74e29cf0dc0bc1287b6b5f3e4d6c8
2023-10-16 12:06:01 -07:00
Ivana Mitrovic
cb078f14c6 docker-bake: Changed compilers names to be more descriptive 2023-10-16 11:53:45 -07:00
Ivana Mitrovic
5b721b033f docker-bake: modified .hcl file
Migrated all the image build definitions from docker-compose.yaml to the bake file.
2023-10-16 11:47:49 -07:00
Bobby R. Bruce
1b0bb678ab util-docker: Proof-of-concept using Docker buildx
Introduced in https://github.com/gem5/gem5/pull/236 the
"docker-build.yaml" file will allow us to build and push docker images
to the GitHub Container Registry. This allows for both automation of
docker image building and allows us to utilize Github's zero-cost
pulling policy for downloads to GitHub Actions runners.

In this PR https://github.com/gem5/gem5/pull/236 has been altered to
use Docker `buildx` which allows for multi-platform Docker Image builds.
A multi-platform Docker image pull automatically pull the correct image
for your platform from a single URL. In this prototype the images are
build to both `linux/arm64` and `linux/amd64` have been set.

Docker `buildx` has it's own file format for specifying image builds
called `bake`. "util/dockerfiles/docker-bake.hcl" has been added with
the goal of replacing "util/dockerfiles/docker-compose.yaml".

In this proof-of-concept doesn't build all our docker images, just
enough to ensure it works inside our actions as intended.

Change-Id: Id0debed216c91ec514aa4fce3bc2ff4fc2ea669b
2023-09-05 17:59:06 -07:00