Update default devfile to use image digest
MR: Pending
<!--
The first line of this issue description must be one of the following:
1. `MR: Pending`
2. `MR: <MR link with trailing +>`,
3. If there are multiple MRs:
```
MRs:
- <MR 1 link with trailing +>`
- <MR 2 link with trailing +>`
- ...
```
4. `MR: No MR`
...and the first description line of the MR should be `Issue: <Issue link with trailing +>`
For more context, see:
https://about.gitlab.com/handbook/engineering/development/dev/create/ide/index.html#relationship-of-issues-to-mrs
-->
<!--
The following sections should be filled out as part of the refinement process before the issue is prioritized.
For more context, see:
https://about.gitlab.com/handbook/engineering/development/dev/create/ide/#2-pre-iteration-planning-meeting
-->
## Description
From the discussions [here](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/171230#note_2263818166), we are using specific image digest for `linux/amd64` in the `default_devfile`. And we have [the issue](https://gitlab.com/gitlab-org/workspaces/gitlab-workspaces-tools/-/issues/12) for fixing this from `gitlab-workspace-tools`.
After the above issue is resolved, then we could update the code here to use OCI image digest, ee/lib/remote_development/settings/default_settings.rb, and not have to pin specific OS and Arch digest.
## Acceptance Criteria
- [ ] Update `DEFAULT_DEVFILE` to use the OCI image digest
- [ ] verify locally everything works as expected
## Notes
Putting some code for how to use `docker inspect` and/or `docker image` to display both the OCI-level digest, and the arch-level digests?
For example, we are targeting this OCI image `registry.gitlab.com/gitlab-org/gitlab-build-images/workspaces/ubuntu-24.04:20250109224147-golang-1.23`
We first pull this image to local
```
~ docker pull registry.gitlab.com/gitlab-org/gitlab-build-images/workspaces/ubuntu-24.04:20250109224147-golang-1.23
```
Then we could inspect Manifest Digest by using the below command
```
~ docker image inspect --format='{{index .RepoDigests 0}}' registry.gitlab.com/gitlab-org/gitlab-build-images/workspaces/ubuntu-24.04:20250109224147-golang-1.23
registry.gitlab.com/gitlab-org/gitlab-build-images/workspaces/ubuntu-24.04@sha256:bd88180d8cb143ef0f9e400c41060a1170500c5f7737fa4fafd044088a3d119e
```
Then we could inspect arch-specific digest by using below command
```
~ docker manifest inspect registry.gitlab.com/gitlab-org/gitlab-build-images/workspaces/ubuntu-24.04:20250109224147-golang-1.23
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.index.v1+json",
"manifests": [
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 6872,
"digest": "sha256:5278a18f31a542bacbb8a2c182df456d3b06321818e71d2d04552f73ab17d0d7",
"platform": {
"architecture": "arm64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 6872,
"digest": "sha256:c3d5527641bc0c6f4fbbea4bb36fe225b8e9f1df69f682c927941327312bc676",
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 566,
"digest": "sha256:0c3019ef6a51e28713e80f821cd47c1d54bbb5cce7f3c9dcff621b2fbafb9c4a",
"platform": {
"architecture": "unknown",
"os": "unknown"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 566,
"digest": "sha256:f185132ce5d6fe4b0541bdf411d052260b76610ff4ab3fd221c6a97cdcfa3cf6",
"platform": {
"architecture": "unknown",
"os": "unknown"
}
}
]
}
```
<!-- Replace with other type, e.g. bug or maintenance, if appropriate -->
<!-- Replace with other subtype if appropriate -->
<!-- By default, all issues start in the unprioritized status. See https://handbook.gitlab.com/handbook/engineering/development/dev/create/remote-development/#-planning-process -->
<!-- For simplicity and to avoid triage bot warnings about missing workflow labels, we will default to issues starting at the refinement phase -->
issue