setup-scripts/docker-scripts/Dockerfile-ubuntu-20.04 (38 lines of code) (raw):

FROM public.ecr.aws/ubuntu/ubuntu:20.04 as base ARG TIME_ZONE RUN if [ -z "${TIME_ZONE}" ] ; then exit 1; fi RUN apt-get update \ && DEBIAN_FRONTEND="noninteractive" TZ="${TIME_ZONE}" \ apt install -y git clang wget curl autoconf \ libglib2.0-dev libboost-dev libkrb5-dev libsystemd-dev libssl-dev \ libboost-program-options-dev libboost-filesystem-dev byacc make libjsoncpp-dev \ clang-12 libgtest-dev RUN ln -sf /usr/lib/llvm-12/bin/clang /usr/bin/clang \ && ln -sf /usr/lib/llvm-12/bin/clang++ /usr/bin/clang++ RUN git clone https://github.com/Kitware/CMake.git -b release /root/CMake \ && cd /root/CMake && ./configure && make -j4 && pwd && make install RUN git clone https://github.com/krb5/krb5.git -b krb5-1.21.2-final /root/krb5 \ && cd /root/krb5/src && autoconf && autoreconf && ./configure && make -j4 && make install RUN git clone --recurse-submodules -b v1.58.0 https://github.com/grpc/grpc /root/grpc \ && mkdir -p /root/grpc/build && cd /root/grpc/build \ && cmake -DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF -DCMAKE_CXX_STANDARD=17 ../ \ && make -j4 && make install \ && mkdir -p /root/grpc/cmake/build && cd /root/grpc/cmake/build \ && cmake -DgRPC_BUILD_TESTS=ON ../.. && make grpc_cli \ && cp /root/grpc/cmake/build/grpc_cli /usr/local/bin RUN cd /root && wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ && apt-get update \ && apt-get install -y dotnet-sdk-8.0 \ && ln -s '/usr/share/dotnet' '/usr/lib/dotnet' RUN git clone https://github.com/aws/credentials-fetcher /root/credentials-fetcher \ && mkdir -p /root/credentials-fetcher/build \ && mkdir -p /usr/lib64/glib-2.0/ \ && ln -s '/usr/lib/x86_64-linux-gnu/glib-2.0/include/' '/usr/lib64/glib-2.0/include' \ && ln -s '/usr/include/jsoncpp/json/' '/usr/include/json' \ && cd /root/credentials-fetcher/build \ && cmake ../ && make -j4 && make install WORKDIR /root/credentials-fetcher/build ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib CMD ["/bin/bash"]