1*eca53ba6SRoland Levillain# Create a virtual environment with all tools installed 2*eca53ba6SRoland Levillain# ref: https://hub.docker.com/_/ubuntu 3*eca53ba6SRoland LevillainFROM ubuntu:latest AS env 4*eca53ba6SRoland Levillain 5*eca53ba6SRoland Levillain# Install system build dependencies 6*eca53ba6SRoland LevillainENV PATH=/usr/local/bin:$PATH 7*eca53ba6SRoland LevillainRUN apt-get update -qq \ 8*eca53ba6SRoland Levillain&& DEBIAN_FRONTEND=noninteractive apt-get install -yq \ 9*eca53ba6SRoland Levillain git wget build-essential \ 10*eca53ba6SRoland Levillain&& apt-get clean \ 11*eca53ba6SRoland Levillain&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 12*eca53ba6SRoland LevillainENTRYPOINT ["/usr/bin/bash", "-c"] 13*eca53ba6SRoland LevillainCMD ["/usr/bin/bash"] 14*eca53ba6SRoland Levillain 15*eca53ba6SRoland Levillain# Install Bazelisk 16*eca53ba6SRoland LevillainARG PLATFORM 17*eca53ba6SRoland LevillainRUN wget \ 18*eca53ba6SRoland Levillain "https://github.com/bazelbuild/bazelisk/releases/download/v1.18.0/bazelisk-linux-${PLATFORM}" \ 19*eca53ba6SRoland Levillain&& chmod +x "bazelisk-linux-${PLATFORM}" \ 20*eca53ba6SRoland Levillain&& mv "bazelisk-linux-${PLATFORM}" /usr/local/bin/bazel 21*eca53ba6SRoland Levillain 22*eca53ba6SRoland LevillainFROM env AS devel 23*eca53ba6SRoland LevillainWORKDIR /home/project 24*eca53ba6SRoland LevillainCOPY . . 25*eca53ba6SRoland Levillain 26*eca53ba6SRoland LevillainFROM devel AS build 27*eca53ba6SRoland LevillainRUN bazel version 28*eca53ba6SRoland LevillainRUN bazel build \ 29*eca53ba6SRoland Levillain -c opt \ 30*eca53ba6SRoland Levillain --subcommands=true \ 31*eca53ba6SRoland Levillain ... 32*eca53ba6SRoland Levillain 33*eca53ba6SRoland LevillainFROM build AS test 34*eca53ba6SRoland LevillainRUN bazel test \ 35*eca53ba6SRoland Levillain -c opt \ 36*eca53ba6SRoland Levillain --test_output=errors \ 37*eca53ba6SRoland Levillain ... 38