# Copyright 2017 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ARG DISTRO_VERSION=33 FROM fedora:${DISTRO_VERSION} ARG NCPU=4 # Install the tools necessary to run Bazel and CMake Super builds. RUN dnf makecache && \ dnf install -y ccache clang clang-tools-extra cmake diffutils findutils \ gcc-c++ git libcxx-devel libcxxabi-devel libasan libubsan libtsan \ llvm make openssl-devel pkgconfig python python3.8 python3-devel \ python-pip tar unzip wget which zlib-devel # Sets root's password to the empty string to enable users to get a root shell # inside the container with `su -` and no password. Sudo would not work because # we run these containers as the invoking user's uid, which does not exist in # the container's /etc/passwd file. RUN echo 'root:' | chpasswd # Install the Python modules needed to run the storage emulator RUN pip3 install --upgrade pip RUN pip3 install setuptools wheel RUN pip3 install git+git://github.com/googleapis/python-storage@8cf6c62a96ba3fff7e5028d931231e28e5029f1c RUN pip3 install flask==1.1.2 httpbin==0.7.0 scalpl==0.4.0 \ crc32c==2.1 gunicorn==20.0.4 # Install the Cloud SDK and some of the emulators. We use the emulators to run # integration tests for the client libraries. COPY . /var/tmp/ci WORKDIR /var/tmp/downloads ENV CLOUDSDK_PYTHON=python3.8 RUN /var/tmp/ci/install-cloud-sdk.sh # The Cloud Pub/Sub emulator needs Java :shrug: RUN dnf makecache && dnf install -y java-latest-openjdk # Install Bazel because some of the builds need it. RUN /var/tmp/ci/install-bazel.sh