summaryrefslogtreecommitdiff
path: root/buildfarm/toolchain.dockerfile
blob: da50e29a5b68143447416599088b931e33c6942d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# This file tells Docker how to build an image for both Buildfarm server and Builder shard-worker.
# Note that this file is referenced in docker-compose.yml for the aforementioned processes.

FROM ubuntu:22.04 AS toolchain
ENV USER="root"

# Install necessary tools/libraries
RUN apt-get update && apt-get install -y curl perl libxml2-dev libssl-dev git wget openjdk-19-jdk g++ gcc

# Pull in the Buildfarm repository
# Note: We are not verifying the commit hash, because the buildfarm solution is temporary and thus not worth it.
RUN git clone -b 2.3.1 https://github.com/bazelbuild/bazel-buildfarm.git

# Switch into the cloned Buildfarm repository
WORKDIR /bazel-buildfarm

# Obtain Bazelisk and make it executable
RUN wget https://github.com/bazelbuild/bazelisk/releases/download/v1.17.0/bazelisk-linux-arm64 -O bazelisk && chmod +x bazelisk

# Build the Buildfarm server and shard-worker in advance. (Note that this is not strictly necessary, since Bazel run will perform a build if necessary)
RUN ./bazelisk build //src/main/java/build/buildfarm:buildfarm-server //src/main/java/build/buildfarm:buildfarm-shard-worker

# Ensure that Buildform's configuration files are availabel at runtime:
COPY config.yml config.yml
COPY logging.properties logging.properties