From ab287aa3ad00109e4005595fd468a171695b2107 Mon Sep 17 00:00:00 2001 From: Corentin Le Molgat Date: Fri, 21 Jul 2023 15:43:07 +0200 Subject: [PATCH] tools/docker: add Ubuntu-23.04 archive --- tools/docker/Makefile | 5 +- tools/docker/images/ubuntu-23.04.Dockerfile | 108 ++++++++++++++++++ tools/docker/test/ubuntu-23.04/cpp.Dockerfile | 13 +++ .../test/ubuntu-23.04/dotnet.Dockerfile | 25 ++++ .../docker/test/ubuntu-23.04/java.Dockerfile | 21 ++++ .../test/ubuntu-23.04/python.Dockerfile | 13 +++ 6 files changed, 183 insertions(+), 2 deletions(-) create mode 100644 tools/docker/images/ubuntu-23.04.Dockerfile create mode 100644 tools/docker/test/ubuntu-23.04/cpp.Dockerfile create mode 100644 tools/docker/test/ubuntu-23.04/dotnet.Dockerfile create mode 100644 tools/docker/test/ubuntu-23.04/java.Dockerfile create mode 100644 tools/docker/test/ubuntu-23.04/python.Dockerfile diff --git a/tools/docker/Makefile b/tools/docker/Makefile index 0b7294402cb..c1bcc13d45a 100644 --- a/tools/docker/Makefile +++ b/tools/docker/Makefile @@ -103,7 +103,8 @@ help: @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-22.10${RESET} (Ubuntu 22.10, rolling)" + @echo -e "\t\t${BOLD}ubuntu-23.04${RESET} (Ubuntu 23.04, rolling)" + @echo -e "\t\t${BOLD}ubuntu-22.10${RESET} (Ubuntu 22.10)" @echo -e "\t\t${BOLD}ubuntu-22.04${RESET} (Ubuntu 22.04 LTS, latest)" @echo -e "\t\t${BOLD}ubuntu-20.04${RESET} (Ubuntu 20.04 LTS)" @echo -e "\t\t${BOLD}ubuntu-18.04${RESET} (Ubuntu 18.04 LTS)" @@ -409,7 +410,7 @@ DISTROS := \ debian-10 debian-11 debian-sid \ fedora-33 fedora-34 fedora-35 fedora-36 fedora-37 fedora-38 \ opensuse-leap \ - ubuntu-18.04 ubuntu-20.04 ubuntu-22.04 ubuntu-22.10 + ubuntu-18.04 ubuntu-20.04 ubuntu-22.04 ubuntu-22.10 ubuntu-23.04 # List of stages STAGES := env devel diff --git a/tools/docker/images/ubuntu-23.04.Dockerfile b/tools/docker/images/ubuntu-23.04.Dockerfile new file mode 100644 index 00000000000..8eb951eca15 --- /dev/null +++ b/tools/docker/images/ubuntu-23.04.Dockerfile @@ -0,0 +1,108 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/_/ubuntu +FROM ubuntu:23.04 AS env + +############# +## SETUP ## +############# +ENV DEBIAN_FRONTEND=noninteractive +RUN apt update -qq \ +&& apt install -yq git wget build-essential cmake lsb-release zlib1g-dev \ +&& apt clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +ENTRYPOINT ["/usr/bin/bash", "-c"] +CMD ["/usr/bin/bash"] + +# Install SWIG +RUN apt-get update -qq \ +&& apt-get install -yq swig \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# Install .Net +# see: https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu +# see: https://github.com/dotnet/core/pull/7423/files +RUN apt-get update -qq \ +&& apt-get install -yq dotnet-sdk-6.0 \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +# Trigger first run experience by running arbitrary cmd +RUN dotnet --info + +# Install Java (openjdk-11) +RUN apt-get update -qq \ +&& apt-get install -yq default-jdk maven \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +ENV JAVA_HOME=/usr/lib/jvm/default-java + +# Install Python +RUN apt-get update -qq \ +&& apt-get install -qq python3 python3-dev python3-pip python3-venv \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +ENV TZ=America/Los_Angeles +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +################ +## OR-TOOLS ## +################ +FROM env AS devel +WORKDIR /root +# 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:-main} +ARG SRC_GIT_SHA1 +ENV SRC_GIT_SHA1 ${SRC_GIT_SHA1:-unknown} + +ARG OR_TOOLS_PATCH +ENV OR_TOOLS_PATCH ${OR_TOOLS_PATCH:-9999} + +# Download sources +# use SRC_GIT_SHA1 to modify the command +# i.e. avoid docker reusing the cache when new commit is pushed +SHELL ["/bin/bash", "-c"] +RUN git clone -b "${SRC_GIT_BRANCH}" --single-branch --depth=1 https://github.com/google/or-tools \ +&& [[ $(cd or-tools && git rev-parse --verify HEAD) == ${SRC_GIT_SHA1} ]] +WORKDIR /root/or-tools + +# C++ +## build +FROM devel AS cpp_build +RUN make detect_cpp \ +&& make cpp JOBS=8 +## archive +FROM cpp_build AS cpp_archive +RUN make archive_cpp + +# .Net +## build +FROM cpp_build AS dotnet_build +ENV USE_DOTNET_CORE_31=OFF +RUN make detect_dotnet \ +&& make dotnet JOBS=8 +## archive +FROM dotnet_build AS dotnet_archive +RUN make archive_dotnet + +# Java +## build +FROM cpp_build AS java_build +RUN make detect_java \ +&& make java JOBS=8 +## archive +FROM java_build AS java_archive +RUN make archive_java + +# Python +## build +FROM cpp_build AS python_build +RUN make detect_python \ +&& make python JOBS=8 +## archive +FROM python_build AS python_archive +RUN make archive_python diff --git a/tools/docker/test/ubuntu-23.04/cpp.Dockerfile b/tools/docker/test/ubuntu-23.04/cpp.Dockerfile new file mode 100644 index 00000000000..2c72e25e310 --- /dev/null +++ b/tools/docker/test/ubuntu-23.04/cpp.Dockerfile @@ -0,0 +1,13 @@ +# ref: https://hub.docker.com/_/ubuntu +FROM ubuntu:23.04 + +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update -qq \ +&& apt-get install -yq build-essential cmake zlib1g-dev \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +WORKDIR /root +ADD or-tools_amd64_ubuntu-23.04_cpp_v*.tar.gz . + +RUN cd or-tools_*_v* && make test diff --git a/tools/docker/test/ubuntu-23.04/dotnet.Dockerfile b/tools/docker/test/ubuntu-23.04/dotnet.Dockerfile new file mode 100644 index 00000000000..317f212cb20 --- /dev/null +++ b/tools/docker/test/ubuntu-23.04/dotnet.Dockerfile @@ -0,0 +1,25 @@ +# ref: https://hub.docker.com/_/ubuntu +FROM ubuntu:23.04 + +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update -qq \ +&& apt-get install -yq build-essential zlib1g-dev \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# Install .Net +# see https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu#2110- +RUN apt-get update -qq \ +&& apt-get install -yq dotnet-sdk-6.0 \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +# 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 + +WORKDIR /root +ADD or-tools_amd64_ubuntu-23.04_dotnet_v*.tar.gz . + +RUN cd or-tools_*_v* && make test diff --git a/tools/docker/test/ubuntu-23.04/java.Dockerfile b/tools/docker/test/ubuntu-23.04/java.Dockerfile new file mode 100644 index 00000000000..626f3a152d6 --- /dev/null +++ b/tools/docker/test/ubuntu-23.04/java.Dockerfile @@ -0,0 +1,21 @@ +# ref: https://hub.docker.com/_/ubuntu +FROM ubuntu:23.04 + +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update -qq \ +&& apt-get install -yq build-essential zlib1g-dev \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# Java/Maven Install +RUN apt-get update -qq \ +&& DEBIAN_FRONTEND=noninteractive apt-get install -yq \ + default-jdk maven \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +ENV JAVA_HOME=/usr/lib/jvm/default-java + +WORKDIR /root +ADD or-tools_amd64_ubuntu-23.04_java_v*.tar.gz . + +RUN cd or-tools_*_v* && make test diff --git a/tools/docker/test/ubuntu-23.04/python.Dockerfile b/tools/docker/test/ubuntu-23.04/python.Dockerfile new file mode 100644 index 00000000000..a6668492d53 --- /dev/null +++ b/tools/docker/test/ubuntu-23.04/python.Dockerfile @@ -0,0 +1,13 @@ +# ref: https://hub.docker.com/_/ubuntu +FROM ubuntu:23.04 + +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update -qq \ +&& apt-get install -yq make \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +WORKDIR /root +ADD or-tools_amd64_ubuntu-23.04_python_v*.tar.gz . + +RUN cd or-tools_*_v* && make test