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