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