xref: /aosp_15_r20/external/crosvm/tools/contrib/minimal_containers/Dockerfile.ubuntu (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1# Copyright 2023 The ChromiumOS Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5FROM docker.io/ubuntu:kinetic-20221130
6
7# Allow APT to cache packages between docker image builds
8RUN rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
9
10# Install dependencies (APT and cargo packages are cached between image builds for faster iterative builds).
11COPY --chmod=555 tools/install-deps rust-toolchain /tools/
12RUN --mount=type=cache,target=/var/cache/apt,sharing=private \
13    --mount=type=cache,target=/var/lib/apt,sharing=private \
14    --mount=type=cache,target=/scratch/cargo_target,sharing=private \
15    apt-get update \
16    # sudo is installed here since it's required by install-deps.
17    # tzdata is installed here so it won't later prompt for configuration.
18    && DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get install --yes sudo tzdata \
19    # Run crosvm's install-deps
20    && cd tools \
21    && ./install-deps
22
23ENV PATH=$PATH:~/.cargo/bin
24
25VOLUME /workspace
26WORKDIR /workspace
27