diff --git a/tools/docker/Makefile b/tools/docker/Makefile index 9209f0161d..66b1f5924d 100644 --- a/tools/docker/Makefile +++ b/tools/docker/Makefile @@ -76,10 +76,11 @@ help: @echo -e "\t\t${BOLD}centos-7${RESET} (Centos 7 LTS)" @echo -e "\t\t${BOLD}debian-11${RESET} (bullseye, latest)" @echo -e "\t\t${BOLD}debian-10${RESET} (buster)" - @echo -e "\t\t${BOLD}fedora-34${RESET} (latest)" + @echo -e "\t\t${BOLD}fedora-35${RESET} (latest)" + @echo -e "\t\t${BOLD}fedora-34${RESET}" @echo -e "\t\t${BOLD}fedora-33${RESET}" @echo -e "\t\t${BOLD}opensuse-leap${RESET} (latest)" - @echo -e "\t\t${BOLD}ubuntu-21.04${RESET} (rolling)" + @echo -e "\t\t${BOLD}ubuntu-21.10${RESET} (rolling)" @echo -e "\t\t${BOLD}ubuntu-20.04${RESET} (Ubuntu 20.04 LTS, latest)" @echo -e "\t\t${BOLD}ubuntu-18.04${RESET} (Ubuntu 18.04 LTS)" @echo -e "\t\t${BOLD}ubuntu-16.04${RESET} (Ubuntu 16.04 LTS)" @@ -355,9 +356,9 @@ DISTROS = \ alpine-edge \ centos-7 centos-8 \ debian-10 debian-11 \ - fedora-33 fedora-34 \ + fedora-33 fedora-34 fedora-35 \ opensuse-leap \ - ubuntu-16.04 ubuntu-18.04 ubuntu-20.04 ubuntu-21.04 + ubuntu-16.04 ubuntu-18.04 ubuntu-20.04 ubuntu-21.10 STAGES = env devel third_party build export/%/or-tools.snk: or-tools.snk | export diff --git a/tools/docker/amd64/alpine-edge.Dockerfile b/tools/docker/amd64/alpine-edge.Dockerfile index ec4feee953..ec1a669edc 100644 --- a/tools/docker/amd64/alpine-edge.Dockerfile +++ b/tools/docker/amd64/alpine-edge.Dockerfile @@ -25,19 +25,21 @@ RUN apk add --no-cache wget icu-libs libintl \ && ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet # see: https://dotnet.microsoft.com/download/dotnet-core/3.1 -RUN dotnet_sdk_version=3.1.413 \ -&& wget -qO dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz \ -&& dotnet_sha512='46ffb31754b295cdb7dc615d5f905aa5842e3ada0e3f975217dfecbaa94e7b0190e86136fe9693d354b6ef88faa83e1c48496ffb1d644bd7ff437aeb48b9229c' \ +RUN dotnet_sdk_version=3.1.415 \ +&& wget -qO dotnet.tar.gz \ +"https://dotnetcli.azureedge.net/dotnet/Sdk/${dotnet_sdk_version}/dotnet-sdk-${dotnet_sdk_version}-linux-musl-x64.tar.gz" \ +&& dotnet_sha512='20297eb436db2fe0cb3d8edfe4ad5b7c7871116616843314830533471a344f0ca943fbc5f92685113afc331a64c90f271245a36be1c232c364add936dd06d13d' \ && echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ && tar -C /usr/share/dotnet -oxzf dotnet.tar.gz \ && rm dotnet.tar.gz # Trigger first run experience by running arbitrary cmd RUN dotnet --info -# see: https://dotnet.microsoft.com/download/dotnet-core/5.0 -RUN dotnet_sdk_version=5.0.401 \ -&& wget -qO dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz \ -&& dotnet_sha512='a2077f4d1c9da9c69453b771cd239bad27f62379402cc5e1c74a1f2a960fd55efc85cc15eafbac11f17ea975895ce107fab4bbfc49880a0a14791e8ac13ca2de' \ +# see: https://dotnet.microsoft.com/download/dotnet-core/6.0 +RUN dotnet_sdk_version=6.0.100 \ +&& wget -qO dotnet.tar.gz \ +"https://dotnetcli.azureedge.net/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-${dotnet_sdk_version}-linux-musl-x64.tar.gz" \ +&& dotnet_sha512='428082c31fd588b12fd34aeae965a58bf1c26b0282184ae5267a85cdadc503f667c7c00e8641892c97fbd5ef26a38a605b683b45a0fef2da302ec7f921cf64fe' \ && echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ && tar -C /usr/share/dotnet -oxzf dotnet.tar.gz \ && rm dotnet.tar.gz diff --git a/tools/docker/amd64/centos-7.Dockerfile b/tools/docker/amd64/centos-7.Dockerfile index d75ee8a445..7894c0eeda 100644 --- a/tools/docker/amd64/centos-7.Dockerfile +++ b/tools/docker/amd64/centos-7.Dockerfile @@ -51,7 +51,7 @@ ENV JAVA_HOME=/usr/lib/jvm/java # see https://docs.microsoft.com/en-us/dotnet/core/install/linux-centos#centos-7- RUN rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm \ && yum -y update \ -&& yum -y install dotnet-sdk-3.1 dotnet-sdk-5.0 \ +&& yum -y install dotnet-sdk-3.1 dotnet-sdk-6.0 \ && yum clean all \ && rm -rf /var/cache/yum # Trigger first run experience by running arbitrary cmd diff --git a/tools/docker/amd64/centos-8.Dockerfile b/tools/docker/amd64/centos-8.Dockerfile index d37128c649..e59cf8f033 100644 --- a/tools/docker/amd64/centos-8.Dockerfile +++ b/tools/docker/amd64/centos-8.Dockerfile @@ -34,12 +34,23 @@ ENV JAVA_HOME=/usr/lib/jvm/java # Install dotnet # see https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-manager-centos8 RUN dnf -y update \ -&& dnf -y install dotnet-sdk-3.1 dotnet-sdk-5.0 \ +&& dnf -y install dotnet-sdk-3.1 \ && dnf clean all \ && rm -rf /var/cache/dnf # Trigger first run experience by running arbitrary cmd RUN dotnet --info +# see: https://dotnet.microsoft.com/download/dotnet-core/6.0 +RUN dotnet_sdk_version=6.0.100 \ +&& wget -qO dotnet.tar.gz \ +"https://dotnetcli.azureedge.net/dotnet/Sdk/${dotnet_sdk_version}/dotnet-sdk-${dotnet_sdk_version}-linux-x64.tar.gz" \ +&& dotnet_sha512='cb0d174a79d6294c302261b645dba6a479da8f7cf6c1fe15ae6998bc09c5e0baec810822f9e0104e84b0efd51fdc0333306cb2a0a6fcdbaf515a8ad8cf1af25b' \ +&& echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ +&& tar -C /usr/lib64/dotnet -oxzf dotnet.tar.gz \ +&& rm dotnet.tar.gz +# Trigger first run experience by running arbitrary cmd +RUN dotnet --info + ENV TZ=America/Los_Angeles RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/tools/docker/amd64/debian-10.Dockerfile b/tools/docker/amd64/debian-10.Dockerfile index 7f670c6bd1..7cae32cbb3 100644 --- a/tools/docker/amd64/debian-10.Dockerfile +++ b/tools/docker/amd64/debian-10.Dockerfile @@ -34,7 +34,7 @@ RUN apt-get update -qq \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ && apt-get update -qq \ -&& apt-get install -qq dotnet-sdk-3.1 dotnet-sdk-5.0 \ +&& apt-get install -qq dotnet-sdk-3.1 dotnet-sdk-6.0 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Trigger first run experience by running arbitrary cmd diff --git a/tools/docker/amd64/debian-11.Dockerfile b/tools/docker/amd64/debian-11.Dockerfile index c82ab6a2a6..60f7efdfbd 100644 --- a/tools/docker/amd64/debian-11.Dockerfile +++ b/tools/docker/amd64/debian-11.Dockerfile @@ -34,7 +34,7 @@ RUN apt-get update -qq \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ && apt-get update -qq \ -&& apt-get install -qq dotnet-sdk-3.1 dotnet-sdk-5.0 \ +&& apt-get install -qq dotnet-sdk-3.1 dotnet-sdk-6.0 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Trigger first run experience by running arbitrary cmd diff --git a/tools/docker/amd64/fedora-33.Dockerfile b/tools/docker/amd64/fedora-33.Dockerfile index 14e87e00b0..46e61b4725 100644 --- a/tools/docker/amd64/fedora-33.Dockerfile +++ b/tools/docker/amd64/fedora-33.Dockerfile @@ -26,11 +26,22 @@ ENV JAVA_HOME=/usr/lib/jvm/java-openjdk # .Net Install # see: https://docs.microsoft.com/en-us/dotnet/core/install/linux-fedora RUN dnf -y update \ -&& dnf -y install dotnet-sdk-3.1 dotnet-sdk-5.0 \ +&& dnf -y install dotnet-sdk-3.1 \ && dnf clean all # Trigger first run experience by running arbitrary cmd RUN dotnet --info +# see: https://dotnet.microsoft.com/download/dotnet-core/6.0 +RUN dotnet_sdk_version=6.0.100 \ +&& wget -qO dotnet.tar.gz \ +"https://dotnetcli.azureedge.net/dotnet/Sdk/${dotnet_sdk_version}/dotnet-sdk-${dotnet_sdk_version}-linux-x64.tar.gz" \ +&& dotnet_sha512='cb0d174a79d6294c302261b645dba6a479da8f7cf6c1fe15ae6998bc09c5e0baec810822f9e0104e84b0efd51fdc0333306cb2a0a6fcdbaf515a8ad8cf1af25b' \ +&& echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ +&& tar -C /usr/lib64/dotnet -oxzf dotnet.tar.gz \ +&& rm dotnet.tar.gz +# Trigger first run experience by running arbitrary cmd +RUN dotnet --info + ################ ## OR-TOOLS ## ################ diff --git a/tools/docker/amd64/fedora-34.Dockerfile b/tools/docker/amd64/fedora-34.Dockerfile index 48de548a75..f15a0e22fc 100644 --- a/tools/docker/amd64/fedora-34.Dockerfile +++ b/tools/docker/amd64/fedora-34.Dockerfile @@ -26,11 +26,22 @@ ENV JAVA_HOME=/usr/lib/jvm/java-openjdk # .Net Install # see: https://docs.microsoft.com/en-us/dotnet/core/install/linux-fedora RUN dnf -y update \ -&& dnf -y install dotnet-sdk-3.1 dotnet-sdk-5.0 \ +&& dnf -y install dotnet-sdk-3.1 \ && dnf clean all # Trigger first run experience by running arbitrary cmd RUN dotnet --info +# see: https://dotnet.microsoft.com/download/dotnet-core/6.0 +RUN dotnet_sdk_version=6.0.100 \ +&& wget -qO dotnet.tar.gz \ +"https://dotnetcli.azureedge.net/dotnet/Sdk/${dotnet_sdk_version}/dotnet-sdk-${dotnet_sdk_version}-linux-x64.tar.gz" \ +&& dotnet_sha512='cb0d174a79d6294c302261b645dba6a479da8f7cf6c1fe15ae6998bc09c5e0baec810822f9e0104e84b0efd51fdc0333306cb2a0a6fcdbaf515a8ad8cf1af25b' \ +&& echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ +&& tar -C /usr/lib64/dotnet -oxzf dotnet.tar.gz \ +&& rm dotnet.tar.gz +# Trigger first run experience by running arbitrary cmd +RUN dotnet --info + ################ ## OR-TOOLS ## ################ diff --git a/tools/docker/amd64/fedora-35.Dockerfile b/tools/docker/amd64/fedora-35.Dockerfile new file mode 100644 index 0000000000..fbdbb4d648 --- /dev/null +++ b/tools/docker/amd64/fedora-35.Dockerfile @@ -0,0 +1,75 @@ +# ref: https://hub.docker.com/_/fedora +FROM fedora:35 AS env + +############# +## SETUP ## +############# +RUN dnf -y update \ +&& dnf -y install git \ + wget which redhat-lsb-core pkgconfig autoconf libtool zlib-devel \ +&& dnf -y groupinstall "Development Tools" \ +&& dnf -y install gcc-c++ cmake \ +&& dnf clean all +ENTRYPOINT ["/usr/bin/bash", "-c"] +CMD ["/usr/bin/bash"] + +RUN dnf -y update \ +&& dnf -y install swig \ +&& dnf clean all + +# Java Install +RUN dnf -y update \ +&& dnf -y install java-11-openjdk java-11-openjdk-devel maven \ +&& dnf clean all +ENV JAVA_HOME=/usr/lib/jvm/java-openjdk + +# .Net Install +# see: https://docs.microsoft.com/en-us/dotnet/core/install/linux-fedora +RUN dnf -y update \ +&& dnf -y install dotnet-sdk-3.1 \ +&& dnf clean all +# Trigger first run experience by running arbitrary cmd +RUN dotnet --info + +# see: https://dotnet.microsoft.com/download/dotnet-core/6.0 +RUN dotnet_sdk_version=6.0.100 \ +&& wget -qO dotnet.tar.gz \ +"https://dotnetcli.azureedge.net/dotnet/Sdk/${dotnet_sdk_version}/dotnet-sdk-${dotnet_sdk_version}-linux-x64.tar.gz" \ +&& dotnet_sha512='cb0d174a79d6294c302261b645dba6a479da8f7cf6c1fe15ae6998bc09c5e0baec810822f9e0104e84b0efd51fdc0333306cb2a0a6fcdbaf515a8ad8cf1af25b' \ +&& echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ +&& tar -C /usr/lib64/dotnet -oxzf dotnet.tar.gz \ +&& rm dotnet.tar.gz +# Trigger first run experience by running arbitrary cmd +RUN dotnet --info + +################ +## OR-TOOLS ## +################ +FROM env AS devel +# Copy the snk key +COPY or-tools.snk /root/or-tools.snk +ENV DOTNET_SNK=/root/or-tools.snk + +ARG SRC_GIT_BRANCH +ENV SRC_GIT_BRANCH ${SRC_GIT_BRANCH:-master} +ARG SRC_GIT_SHA1 +ENV SRC_GIT_SHA1 ${SRC_GIT_SHA1:-unknown} + +# Download sources +# use SRC_GIT_SHA1 to modify the command +# i.e. avoid docker reusing the cache when new commit is pushed +WORKDIR /root +RUN git clone -b "${SRC_GIT_BRANCH}" --single-branch https://github.com/google/or-tools \ +&& echo "sha1: $(cd or-tools && git rev-parse --verify HEAD)" \ +&& echo "expected sha1: ${SRC_GIT_SHA1}" + +# Build third parties +FROM devel AS third_party +WORKDIR /root/or-tools +RUN make detect && make third_party + +# Build project +FROM third_party AS build +RUN make detect_cc && make cc +RUN make detect_java && make java +RUN make detect_dotnet && make dotnet diff --git a/tools/docker/amd64/opensuse-leap.Dockerfile b/tools/docker/amd64/opensuse-leap.Dockerfile index f98cf97848..37e8089525 100644 --- a/tools/docker/amd64/opensuse-leap.Dockerfile +++ b/tools/docker/amd64/opensuse-leap.Dockerfile @@ -37,19 +37,21 @@ RUN mkdir -p /usr/share/dotnet \ && ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet # see: https://dotnet.microsoft.com/download/dotnet-core/3.1 -RUN dotnet_sdk_version=3.1.413 \ -&& wget -qO dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz \ -&& dotnet_sha512='2a0824f11aba0b79d3f9a36af0395649bc9b4137e61b240a48dccb671df0a5b8c2086054f8e495430b7ed6c344bb3f27ac3dfda5967d863718a6dadeca951a83' \ +RUN dotnet_sdk_version=3.1.415 \ +&& wget -qO dotnet.tar.gz \ +"https://dotnetcli.azureedge.net/dotnet/Sdk/${dotnet_sdk_version}/dotnet-sdk-${dotnet_sdk_version}-linux-x64.tar.gz" \ +&& dotnet_sha512='df7a6d1abed609c382799a8f69f129ec72ce68236b2faecf01aed4c957a40a9cfbbc9126381bf517dff3dbe0e488f1092188582701dd0fef09a68b8c5707c747' \ && echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ && tar -C /usr/share/dotnet -oxzf dotnet.tar.gz \ && rm dotnet.tar.gz # Trigger first run experience by running arbitrary cmd RUN dotnet --info -# see: https://dotnet.microsoft.com/download/dotnet-core/5.0 -RUN dotnet_sdk_version=5.0.401 \ -&& wget -qO dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz \ -&& dotnet_sha512='a444d44007709ceb68d8f72dec0531e17f85f800efc0007ace4fa66ba27f095066930e6c6defcd2f85cdedea2fec25e163f5da461c1c2b8563e5cd7cb47091e0' \ +# see: https://dotnet.microsoft.com/download/dotnet-core/6.0 +RUN dotnet_sdk_version=6.0.100 \ +&& wget -qO dotnet.tar.gz \ +"https://dotnetcli.azureedge.net/dotnet/Sdk/${dotnet_sdk_version}/dotnet-sdk-${dotnet_sdk_version}-linux-x64.tar.gz" \ +&& dotnet_sha512='cb0d174a79d6294c302261b645dba6a479da8f7cf6c1fe15ae6998bc09c5e0baec810822f9e0104e84b0efd51fdc0333306cb2a0a6fcdbaf515a8ad8cf1af25b' \ && echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ && tar -C /usr/share/dotnet -oxzf dotnet.tar.gz \ && rm dotnet.tar.gz diff --git a/tools/docker/amd64/ubuntu-16.04.Dockerfile b/tools/docker/amd64/ubuntu-16.04.Dockerfile index 4b287b3f0f..616bf89d54 100644 --- a/tools/docker/amd64/ubuntu-16.04.Dockerfile +++ b/tools/docker/amd64/ubuntu-16.04.Dockerfile @@ -64,7 +64,7 @@ RUN apt-get update -qq \ && wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && apt-get update -qq \ -&& apt-get install -yq dotnet-sdk-3.1 dotnet-sdk-5.0 \ +&& apt-get install -yq dotnet-sdk-3.1 dotnet-sdk-6.0 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Trigger first run experience by running arbitrary cmd diff --git a/tools/docker/amd64/ubuntu-18.04.Dockerfile b/tools/docker/amd64/ubuntu-18.04.Dockerfile index 7f8791d6e7..76476fd7cf 100644 --- a/tools/docker/amd64/ubuntu-18.04.Dockerfile +++ b/tools/docker/amd64/ubuntu-18.04.Dockerfile @@ -39,7 +39,7 @@ RUN apt-get update -qq \ && wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && apt-get update -qq \ -&& apt-get install -yq dotnet-sdk-3.1 dotnet-sdk-5.0 \ +&& apt-get install -yq dotnet-sdk-3.1 dotnet-sdk-6.0 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Trigger first run experience by running arbitrary cmd diff --git a/tools/docker/amd64/ubuntu-20.04.Dockerfile b/tools/docker/amd64/ubuntu-20.04.Dockerfile index c6b82ba462..1bcce8dd82 100644 --- a/tools/docker/amd64/ubuntu-20.04.Dockerfile +++ b/tools/docker/amd64/ubuntu-20.04.Dockerfile @@ -34,7 +34,7 @@ RUN apt-get update -qq \ && wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && apt-get update -qq \ -&& apt-get install -yq dotnet-sdk-3.1 dotnet-sdk-5.0 \ +&& apt-get install -yq dotnet-sdk-3.1 dotnet-sdk-6.0 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Trigger first run experience by running arbitrary cmd