crosvm/tools/impl/dev_container
Keiichi Watanabe ffdfff586f Update Rust toolchain to 1.88
- Change qemu binary names; Remove '-static' postfixes
- Fix clippy errors with using new APIs introduced after 1.81
  - unnecessary_map_or
  - manual_repeat_n
- Fix clippy::needless-as-bytes
- Update cargo-nextest in dev_container and testvm
   - To avoid missing libstd error due to
     https://github.com/rust-lang/rust/pull/131188
   - To fix an error on parsing cargo-metadata.json
- For mingw, specify libslirp and glib's paths when building
  net_util
- Install binutils in testvm

BUG=b:455879436
TEST=CQ

Change-Id: I3add61aac9573f20aa7d1aee2b9cf6cf9dd43493
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/7089911
Reviewed-by: Frederick Mayle <fmayle@google.com>
Reviewed-by: Noah Gold <nkgold@google.com>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
2025-11-21 13:21:47 -08:00
..
base_version infra: uprev dev container 2025-06-03 10:45:42 -07:00
Dockerfile aarch64: remove support for 32-bit host userspace 2025-11-13 14:37:26 -08:00
Dockerfile.base aarch64: remove support for 32-bit host userspace 2025-11-13 14:37:26 -08:00
Makefile tools: dev_container: Allow upload base image and dev image separately 2025-11-18 11:19:11 -08:00
README.md tools: dev_container: Allow upload base image and dev image separately 2025-11-18 11:19:11 -08:00
version Update Rust toolchain to 1.88 2025-11-21 13:21:47 -08:00

Dev Container

This directory contains the dev container used by developers locally as well as the crosvm CI infrastructure.

The container is split into two, crosvm_dev defined by tools/impl/dev_container/Dockerfile and crosvm_dev_base defined by tools/impl/dev_container/Dockerfile.base.

Base image crosvm_dev_base

The Dockerfile.base image contains a plain debian image with only debian packages from tools/deps/install-*-debs installed. Since we track debian testing, new packages can come with new problems and that image should not be updated very often.

To make changes to those debian packages, modify the install scripts and uprev the tools/impl/dev_container/base_version file. Then rebuild the container with:

make -C tools/impl/dev_container crosvm_dev_base

To rebuild the dev container using the new base image, upload the base image first before going to the next section:

make -C tools/impl/dev_container upload_base

Note that you need to be a Googler to be able to upload containers. See go/crosvm/infra for access control and authenticate via:

gcloud auth configure-docker gcr.io

Dev container image crosvm_dev

The Dockerfile builds the dev container on top of crosvm_dev_base, so we are free to uprev tooling without having to pull in new debian packages.

To make changes to crosvm_dev, modify the corresponding install scripts and uprev the tools/impl/dev_container/version file. Then rebuild the container with:

make -C tools/impl/dev_container crosvm_dev

This will make the image available for testing locally with tools/dev_container. You may have to stop the previous container to pick up the new image tools/dev_container --stop.

To upload the new version of the dev container run:

make -C tools/impl/dev_container upload_dev