|
| 1 | +# This Dockerfile is used to create a container with compilers and tools |
| 2 | +# building the CEL C++ library on GitHub. |
| 3 | +# |
| 4 | +# To update a new version of this container, use gcloud. You may need to run |
| 5 | +# `gcloud auth login` and `gcloud auth configure-docker` first. |
| 6 | +# |
| 7 | +# Note, if you need to run docker using `sudo` use the following commands |
| 8 | +# instead: |
| 9 | +# |
| 10 | +# sudo gcloud auth login --no-launch-browser |
| 11 | +# sudo gcloud auth configure-docker |
| 12 | +# |
| 13 | +# Run the following command from the root of the CEL repository: |
| 14 | +# |
| 15 | +# gcloud builds submit --region=us -t gcr.io/cel-analysis/cel-cpp/ubuntu_floor . |
| 16 | +# |
| 17 | +# Once complete get the sha256 digest from the output using the following |
| 18 | +# command: |
| 19 | +# |
| 20 | +# gcloud artifacts versions list --package=cel-cpp/ubuntu_floor --repository=gcr.io \ |
| 21 | +# --location=us |
| 22 | +# |
| 23 | +# The cloudbuild.yaml file must be updated to use the new digest like so: |
| 24 | +# |
| 25 | +# - name: 'gcr.io/cel-analysis/cel-cpp/ubuntu_floor@<SHA256>' |
| 26 | +FROM gcr.io/cloud-marketplace/google/ubuntu2204:latest |
| 27 | + |
| 28 | +# Install Bazel prerequesites and required tools. |
| 29 | +# See https://docs.bazel.build/versions/master/install-ubuntu.html |
| 30 | +# See https://github.com/google/oss-policies-info/blob/main/foundational-cxx-support-matrix.md |
| 31 | +RUN apt-get update && apt-get upgrade -y && \ |
| 32 | + DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ |
| 33 | + bash \ |
| 34 | + ca-certificates \ |
| 35 | + git \ |
| 36 | + libssl-dev \ |
| 37 | + make \ |
| 38 | + pkg-config \ |
| 39 | + python3 \ |
| 40 | + unzip \ |
| 41 | + wget \ |
| 42 | + zip \ |
| 43 | + zlib1g-dev \ |
| 44 | + default-jdk-headless \ |
| 45 | + clang-14 \ |
| 46 | + gcc-10 g++-10 \ |
| 47 | + tzdata \ |
| 48 | + && apt-get clean |
| 49 | + |
| 50 | +# Install Bazelisk. |
| 51 | +# https://github.com/bazelbuild/bazelisk/releases |
| 52 | +ARG BAZELISK_URL="https://github.com/bazelbuild/bazelisk/releases/download/v1.27.0/bazelisk-amd64.deb" |
| 53 | +ARG BAZELISK_CHKSUM="d8b00ea975c823e15263c80200ac42979e17368547fbff4ab177af035badfa83" |
| 54 | +ADD ${BAZELISK_URL} /tmp/bazelisk.deb |
| 55 | + |
| 56 | +ENV BAZELISK_CHKSUM=${BAZELISK_CHKSUM} |
| 57 | +RUN echo "${BAZELISK_CHKSUM} */tmp/bazelisk.deb" | sha256sum --check |
| 58 | + |
| 59 | +RUN apt-get install /tmp/bazelisk.deb |
| 60 | + |
| 61 | +RUN mkdir -p /workspace |
| 62 | +RUN mkdir -p /bazel |
| 63 | + |
| 64 | +RUN USE_BAZEL_VERSION=8.7.0 bazelisk help |
| 65 | +RUN USE_BAZEL_VERSION=7.3.2 bazelisk help |
| 66 | + |
| 67 | +ENV CC=gcc-10 |
| 68 | +ENV CXX=g++-10 |
| 69 | + |
| 70 | +ENTRYPOINT ["/usr/bin/bazelisk"] |
0 commit comments