devcontainer: Use our own dockerfile (#42166)

Switch to using our own dockerfile, and install the required
dependencies into our image.
In follow-ups we can build the docker image in CI, so that users can
download a prebuilt docker image to save time.

Testing: Manually tested by opening servo in the devcontainer and
running `./mach build`

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
This commit is contained in:
Jonathan Schwender
2026-01-28 06:18:40 +01:00
committed by GitHub
parent e137bec9cc
commit 73af1bf099
3 changed files with 56 additions and 23 deletions

View File

@@ -2,33 +2,17 @@
// README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu
{
"name": "Ubuntu",
"image": "mcr.microsoft.com/devcontainers/base:noble",
"features": {
"ghcr.io/devcontainers/features/rust:1": {
"version": "1.91.0",
"profile": "default",
"components": "clippy,llvm-tools,rustc-dev,rust-analyzer,rust-src,rustfmt"
},
"ghcr.io/devcontainers-extra/features/uv:1": {
"version": "latest"
}
"build": {
"dockerfile": "Dockerfile",
"context": ".."
},
// Uncomment the following when using podman (rootless)
// Update the uid and gid, to your local users uid and gid (run `echo $UID` and `echo $GID`)
// "runArgs": ["--userns=keep-id:uid=1000,gid=1000"],
// "containerUser": "vscode",
// Uncomment the following when using rootless docker
// "containerUser": "root",
// "remoteUser": "root",
// "updateRemoteUserUID": false,
// Use 'postCreateCommand' to run commands after the container is created.
// This takes more time on the first run compared to pulling a prebuilt image layer,
// but makes sure the bootstrapped dependencies are always up to date.
// Most dependencies are installed in the image, but we run mach bootstrap to ensure
// the environment matches what's expected in the current servo version, which might
// have changed since the image was built.
"postCreateCommand":
"./mach bootstrap --force",
"./mach bootstrap --yes",
"containerEnv": {
"CC": "clang",