blob: 238ed0b6f8e44014e0eaa3f3a07f7b0840181a9b [file] [log] [blame]
# 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.
# Build-argument of the image tag of dependencies to use. Set to the same
# version as `ci/image_tag`
ARG TAG
# Stage containing VM data to be used later.
# (COPY --from does not allow the use of ARGs)
FROM gcr.io/crosvm-packages/crosvm_test_vm_amd64:${TAG} as vm
# Main stage
FROM gcr.io/crosvm-packages/crosvm_base:${TAG}
# Install libraries needed to compile crosvm and it's dependencies.
RUN apt-get install --yes --no-install-recommends \
libcap-dev \
libdbus-1-dev \
libdrm-dev \
libepoxy-dev \
libssl-dev \
libwayland-dev \
qemu-system-x86
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
# Include test VM inside this container
COPY --from=vm \
/workspace/vm/* \
/workspace/vm/
COPY --from=vm \
/root/.ssh /root/.ssh
# Setup entrypoint and interactive shell
WORKDIR /workspace/src/platform/crosvm
COPY bashrc /root/.bashrc
COPY entrypoint /workspace
ENTRYPOINT ["/workspace/entrypoint"]