xref: /aosp_15_r20/external/crosvm/tools/impl/cros_container/Dockerfile (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1# syntax=docker/dockerfile:1.3-labs
2# Copyright 2022 The ChromiumOS Authors
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6FROM docker.io/debian:testing
7ARG BOARD=hatch
8
9RUN apt update \
10    && apt install -y git python3-pip curl sudo wget procps
11
12# Add a new password-less sudoer user crosvmdev
13RUN useradd -ms /bin/bash crosvmdev \
14    && usermod -aG sudo crosvmdev \
15    && echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
16
17COPY entrypoint.sh /tools/
18RUN chmod 755 /tools/entrypoint.sh
19ENTRYPOINT [ "/tools/entrypoint.sh" ]
20
21# Following operations will be run as crosvmdev to ensure correct permission.
22USER crosvmdev
23WORKDIR /home/crosvmdev
24
25RUN git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
26
27# Prepare path to depot tools for crosvmdev
28RUN echo 'export PATH=/home/crosvmdev/depot_tools:$PATH' >> /home/crosvmdev/.profile
29ENV PATH="/home/crosvmdev/depot_tools:${PATH}"
30
31RUN mkdir /home/crosvmdev/chromiumos
32
33WORKDIR /home/crosvmdev/chromiumos
34
35RUN git config --global user.email [email protected] && git config --global user.name crosvmdev
36RUN repo init -u https://chromium.googlesource.com/chromiumos/manifest -g minilayout,crosvm -b stable --depth=1
37RUN repo sync -j 8 --current-branch
38
39RUN --security=insecure cros_sdk --create && rm /home/crosvmdev/chromiumos/.cache/sdks/*
40RUN --security=insecure cros_sdk setup_board --board=${BOARD}
41RUN --security=insecure cros_sdk emerge-${BOARD} --update --deep -j$(nproc) chromeos-base/crosvm
42