crosvm/ci/crosvm_builder/Dockerfile
Dennis Kempin 191b95b5d7 native and aarch64 cross-compile containers
This CL adds the foundation for running tests consistently
in Kokoro and locally, for both x86 and aarch64.

The crosvm_builder is similar to the original image from
docker/crosvm.Dockerfile.
The main difference is that ChromeOS dependencies are not
compiled into the container, but built at runtime.

The crosvm_aarch64_builder installs the build enviornment
to cross-compile crosvm for aarch64. The tests are run
with user-space emulation using qemu-aarch64-static.

See ci/README.md for instructions on how to use these
builders.

Tests on aarch64 cannot all be run using user-space
emulation. We will need a VM to pass all smoke tests,
this work is tracked in b/177228167.

BUG=b:177133814
TEST=Tested by running
./ci/builder bin/smoke_test
./ci/builder cargo test
./ci/aarch64_builder cargo build
./ci/aarch64_builder cargo test -p tempfile

Change-Id: Iffffcf48894787dd72fff894af351fdaced0b429
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2621994
Reviewed-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Stephen Barber <smbarber@chromium.org>
Tested-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
2021-01-20 17:41:27 +00:00

36 lines
1,017 B
Docker

# Copyright 2021 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# Docker container to build crosvm for the host architecture.
FROM gcr.io/crosvm-packages/crosvm_base
# Install libraries needed to compile crosvm and it's dependencies.
RUN apt-get install --yes --no-install-recommends \
libdbus-1-dev \
libcap-dev \
libdrm-dev \
libepoxy-dev \
libfdt-dev \
libssl-dev \
libwayland-dev
RUN apt-get install --yes -t testing --no-install-recommends \
libdrm-dev \
libepoxy-dev
# Allow GCC/Rust to find packages and libraries stored on the scratch volume.
ENV LIBRARY_PATH=/workspace/scratch/lib
ENV LD_LIBRARY_PATH=/workspace/scratch/lib
ENV PKG_CONFIG_PATH=/workspace/scratch/lib/pkgconfig
# Setup entrypoint and interactive shell
WORKDIR /workspace/src/platform/crosvm
COPY entrypoint /workspace
COPY bashrc /root/.bashrc
ENTRYPOINT ["/workspace/entrypoint"]
CMD ["bash"]