generated from openziti/template-repo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
install contemporary git and clang; resolves #5
- Loading branch information
Showing
1 changed file
with
52 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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) \ | ||
|
@@ -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 | ||
|