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