Skip to content

Commit

Permalink
install contemporary git and clang; resolves #5
Browse files Browse the repository at this point in the history
  • Loading branch information
qrkourier committed Aug 21, 2023
1 parent 7c86a0a commit 931637c
Showing 1 changed file with 52 additions and 17 deletions.
69 changes: 52 additions & 17 deletions docker-image/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,51 +4,83 @@
# pin the cmake version to ensure repeatable builds
ARG CMAKE_VERSION="3.26.3"

FROM gcc:11 as gcc-11

# Ubuntu Bionic 18.04 LTS has GLIBC 2.27
FROM ubuntu:bionic

ARG CMAKE_VERSION
ARG XDG_CONFIG_HOME
ARG DEBIAN_FRONTEND=noninteractive

LABEL org.opencontainers.image.authors="[email protected]"

ENV DEBIAN_FRONTEND=noninteractive
ENV GIT_DISCOVERY_ACROSS_FILESYSTEM=1
ENV TZ=UTC

USER root

ENV GIT_DISCOVERY_ACROSS_FILESYSTEM=1
ENV TZ=UTC
ENV PATH="/usr/local/:${PATH}"
# used by git to find global config in container that is writeable by the
# developer's UID
ENV GIT_CONFIG_GLOBAL="/tmp/ziti-builder-gitconfig"
# used by build scripts to detect running in docker
ENV BUILD_ENVIRONMENT="ziti-builder-docker"

### install gcc
COPY --from=gcc-11 /usr/local/bin/gcc /usr/local/bin/gcc
COPY --from=gcc-11 /usr/local/bin/g++ /usr/local/bin/g++

RUN apt-get update \
&& apt-get -y install \
&& apt-get --yes --quiet --no-install-recommends install \
autoconf \
automake \
autopoint \
build-essential \
crossbuild-essential-arm64 \
crossbuild-essential-armhf \
curl \
doxygen \
git \
dpkg-dev \
gpg \
graphviz \
libc-dev \
libc6-dev \
libcap-dev \
libssl-dev \
libsystemd-dev \
libtool \
ninja-build \
make \
pkg-config \
python3 \
python3-pip \
software-properties-common \
tar \
unzip \
wget \
zip \
zlib1g-dev \
&& rm -rf /var/lib/apt/lists/*
&& apt-get --yes autoremove \
&& apt-get clean autoclean \
&& rm -fr /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*

# provides patch releases for 1.11 in /usr/local/bin/ninja
RUN python3 -m pip install ninja~=1.11.0

RUN curl -sSLf https://apt.llvm.org/llvm-snapshot.gpg.key \
| gpg --dearmor --output /usr/share/keyrings/llvm-snapshot.gpg \
&& chmod +r /usr/share/keyrings/llvm-snapshot.gpg
RUN echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot.gpg] http://apt.llvm.org/bionic/ llvm-toolchain-bionic-7 main" \
| tee /etc/apt/sources.list.d/llvm-snapshot.list >/dev/null

RUN add-apt-repository ppa:git-core/ppa \
&& apt-get update \
&& apt-get --yes --quiet --no-install-recommends install \
git \
clang-7 \
&& apt-get --yes autoremove \
&& apt-get clean autoclean \
&& rm -fr /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
RUN ln -s /usr/bin/clang-7 /usr/bin/clang
RUN ln -s /usr/bin/clang++-7 /usr/bin/clang++

RUN curl -sSfL https://cmake.org/files/v${CMAKE_VERSION%.*}/cmake-${CMAKE_VERSION}-linux-$(uname -m).sh -o cmake.sh \
&& (bash cmake.sh --skip-license --prefix=/usr/local) \
Expand All @@ -59,14 +91,17 @@ RUN dpkg --add-architecture armhf
RUN dpkg --add-architecture arm64
COPY ./crossbuild.list /etc/apt/sources.list.d/crossbuild.list
RUN sed -Ei 's/^deb/deb [arch=amd64]/g' /etc/apt/sources.list
RUN apt-get update
RUN apt-get -y install \
libcap-dev:armhf \
libcap-dev:arm64 \
zlib1g-dev:armhf \
zlib1g-dev:arm64 \
libssl-dev:armhf \
libssl-dev:arm64
RUN apt-get update \
&& apt-get --yes --quiet --no-install-recommends install \
libcap-dev:armhf \
libcap-dev:arm64 \
zlib1g-dev:armhf \
zlib1g-dev:arm64 \
libssl-dev:armhf \
libssl-dev:arm64 \
&& apt-get --yes autoremove \
&& apt-get clean autoclean \
&& rm -fr /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*

ENV VCPKG_ROOT=/usr/local/vcpkg
# this must be set on arm. see https://learn.microsoft.com/en-us/vcpkg/users/config-environment#vcpkg_force_system_binaries
Expand Down

0 comments on commit 931637c

Please sign in to comment.