Skip to content

Commit c0c54fb

Browse files
committed
tools/docker: Add almalinux-9 and rockylinux-9
1 parent 6a89f75 commit c0c54fb

7 files changed

+333
-0
lines changed

tools/docker/Makefile

+6
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ help:
8989
# @echo -e "\t\t${BOLD}riscv64 (RISC-V 64bits, experimental)${RESET}"
9090
@echo
9191
@echo -e "\t${BOLD}<distro>${RESET}:"
92+
@echo -e "\t\t${BOLD}almalinux-9${RESET} (latest)"
9293
@echo -e "\t\t${BOLD}alpine-edge${RESET} (latest)"
9394
@echo -e "\t\t${BOLD}archlinux${RESET} (latest)"
9495
@echo -e "\t\t${BOLD}debian-sid${RESET} (unstable)"
@@ -105,6 +106,7 @@ help:
105106
@echo -e "\t\t${BOLD}ubuntu-22.04${RESET} (Ubuntu 22.04 LTS)"
106107
@echo -e "\t\t${BOLD}ubuntu-20.04${RESET} (Ubuntu 20.04 LTS)"
107108
@echo -e "\t\t${BOLD}opensuse-leap${RESET} (latest)"
109+
@echo -e "\t\t${BOLD}rockylinux-9${RESET} (latest)"
108110
@echo
109111
@echo -e "\t${BOLD}<stage>${RESET}:"
110112
@echo -e "\t\t${BOLD}env${RESET}"
@@ -126,6 +128,8 @@ help:
126128
@echo -e "\te.g. 'make amd64_ubuntu-22.04_cpp_test'"
127129
@echo
128130
@echo -e "\tnote: Few custom merge targets (e.g. ${BOLD}export${RESET}) are also provided."
131+
@echo -e "\te.g. 'make amd64_almalinux-9_export'"
132+
@echo -e "\te.g. 'make arm64_almalinux-9_export'"
129133
@echo
130134
@echo -e "\t${BOLD}NOCACHE=1${RESET}: use 'docker build --no-cache' when building container (default use cache)."
131135
@echo
@@ -399,12 +403,14 @@ PLATFORMS := amd64 arm64 # riscv64
399403

400404
# Currently supported distro
401405
DISTROS := \
406+
almalinux-9 \
402407
alpine-edge \
403408
archlinux \
404409
debian-11 debian-12 debian-sid \
405410
fedora-37 fedora-38 fedora-39 \
406411
ubuntu-20.04 ubuntu-22.04 ubuntu-23.04 ubuntu-23.10 ubuntu-24.04 \
407412
opensuse-leap \
413+
rockylinux-9
408414

409415
# List of stages
410416
STAGES := env devel
+116
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
# ref: https://hub.docker.com/_/almalinux
2+
FROM almalinux:9 AS env
3+
4+
#############
5+
## SETUP ##
6+
#############
7+
ENV PATH=/usr/local/bin:$PATH
8+
RUN dnf -y update \
9+
&& dnf -y install git wget openssl-devel cmake \
10+
&& dnf -y groupinstall "Development Tools" \
11+
&& dnf clean all \
12+
&& rm -rf /var/cache/dnf
13+
CMD [ "/usr/bin/bash" ]
14+
15+
# Install SWIG 4.2.1
16+
FROM base AS swig
17+
RUN dnf -y update \
18+
&& dnf -y install pcre2-devel \
19+
&& dnf clean all \
20+
&& rm -rf /var/cache/dnf \
21+
&& wget -q "https://downloads.sourceforge.net/project/swig/swig/swig-4.2.1/swig-4.2.1.tar.gz" \
22+
&& tar xvf swig-4.2.1.tar.gz \
23+
&& rm swig-4.2.1.tar.gz \
24+
&& cd swig-4.2.1 \
25+
&& ./configure --prefix=/usr \
26+
&& make -j 4 \
27+
&& make install \
28+
&& cd .. \
29+
&& rm -rf swig-4.2.1
30+
31+
# Install .Net
32+
# see: https://learn.microsoft.com/en-us/dotnet/core/install/linux-scripted-manual#scripted-install
33+
RUN wget -q "https://dot.net/v1/dotnet-install.sh" \
34+
&& chmod a+x dotnet-install.sh \
35+
&& ./dotnet-install.sh -c 3.1 -i /usr/local/bin \
36+
&& ./dotnet-install.sh -c 6.0 -i /usr/local/bin
37+
# Trigger first run experience by running arbitrary cmd
38+
RUN dotnet --info
39+
40+
# Java Install
41+
RUN dnf -y update \
42+
&& dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel maven \
43+
&& dnf clean all \
44+
&& rm -rf /var/cache/dnf
45+
46+
# Install Python
47+
RUN dnf -y update \
48+
&& dnf -y install python3-devel python3-pip python3-numpy \
49+
&& dnf clean all \
50+
&& rm -rf /var/cache/dnf
51+
RUN python3 -m pip install \
52+
absl-py mypy mypy-protobuf pandas
53+
54+
################
55+
## OR-TOOLS ##
56+
################
57+
FROM env AS devel
58+
ENV DISTRIBUTION=almalinux-9
59+
60+
WORKDIR /root
61+
# Copy the snk key
62+
COPY or-tools.snk /root/or-tools.snk
63+
ENV DOTNET_SNK=/root/or-tools.snk
64+
65+
ARG SRC_GIT_BRANCH
66+
ENV SRC_GIT_BRANCH ${SRC_GIT_BRANCH:-main}
67+
ARG SRC_GIT_SHA1
68+
ENV SRC_GIT_SHA1 ${SRC_GIT_SHA1:-unknown}
69+
70+
ARG OR_TOOLS_PATCH
71+
ENV OR_TOOLS_PATCH ${OR_TOOLS_PATCH:-9999}
72+
73+
# Download sources
74+
# use SRC_GIT_SHA1 to modify the command
75+
# i.e. avoid docker reusing the cache when new commit is pushed
76+
SHELL ["/bin/bash", "-c"]
77+
RUN git clone -b "${SRC_GIT_BRANCH}" --single-branch --depth=1 https://github.com/google/or-tools \
78+
&& [[ $(cd or-tools && git rev-parse --verify HEAD) == ${SRC_GIT_SHA1} ]]
79+
WORKDIR /root/or-tools
80+
81+
# C++
82+
## build
83+
FROM devel AS cpp_build
84+
RUN make detect_cpp \
85+
&& make cpp JOBS=8
86+
## archive
87+
FROM cpp_build AS cpp_archive
88+
RUN make archive_cpp
89+
90+
# .Net
91+
## build
92+
FROM cpp_build AS dotnet_build
93+
ENV USE_DOTNET_CORE_31=ON
94+
RUN make detect_dotnet \
95+
&& make dotnet JOBS=8
96+
## archive
97+
FROM dotnet_build AS dotnet_archive
98+
RUN make archive_dotnet
99+
100+
# Java
101+
## build
102+
FROM cpp_build AS java_build
103+
RUN make detect_java \
104+
&& make java JOBS=8
105+
## archive
106+
FROM java_build AS java_archive
107+
RUN make archive_java
108+
109+
# Python
110+
## build
111+
FROM cpp_build AS python_build
112+
RUN make detect_python \
113+
&& make python JOBS=8
114+
## archive
115+
FROM python_build AS python_archive
116+
RUN make archive_python
+116
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
# ref: https://hub.docker.com/_/rockylinux
2+
FROM rockylinux:9 AS env
3+
4+
#############
5+
## SETUP ##
6+
#############
7+
ENV PATH=/usr/local/bin:$PATH
8+
RUN dnf -y update \
9+
&& dnf -y install git wget openssl-devel cmake \
10+
&& dnf -y groupinstall "Development Tools" \
11+
&& dnf clean all \
12+
&& rm -rf /var/cache/dnf
13+
CMD [ "/usr/bin/bash" ]
14+
15+
# Install SWIG 4.2.1
16+
FROM base AS swig
17+
RUN dnf -y update \
18+
&& dnf -y install pcre2-devel \
19+
&& dnf clean all \
20+
&& rm -rf /var/cache/dnf \
21+
&& wget -q "https://downloads.sourceforge.net/project/swig/swig/swig-4.2.1/swig-4.2.1.tar.gz" \
22+
&& tar xvf swig-4.2.1.tar.gz \
23+
&& rm swig-4.2.1.tar.gz \
24+
&& cd swig-4.2.1 \
25+
&& ./configure --prefix=/usr \
26+
&& make -j 4 \
27+
&& make install \
28+
&& cd .. \
29+
&& rm -rf swig-4.2.1
30+
31+
# Install .Net
32+
# see: https://learn.microsoft.com/en-us/dotnet/core/install/linux-scripted-manual#scripted-install
33+
RUN wget -q "https://dot.net/v1/dotnet-install.sh" \
34+
&& chmod a+x dotnet-install.sh \
35+
&& ./dotnet-install.sh -c 3.1 -i /usr/local/bin \
36+
&& ./dotnet-install.sh -c 6.0 -i /usr/local/bin
37+
# Trigger first run experience by running arbitrary cmd
38+
RUN dotnet --info
39+
40+
# Java Install
41+
RUN dnf -y update \
42+
&& dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel maven \
43+
&& dnf clean all \
44+
&& rm -rf /var/cache/dnf
45+
46+
# Install Python
47+
RUN dnf -y update \
48+
&& dnf -y install python3-devel python3-pip python3-numpy \
49+
&& dnf clean all \
50+
&& rm -rf /var/cache/dnf
51+
RUN python3 -m pip install \
52+
absl-py mypy mypy-protobuf pandas
53+
54+
################
55+
## OR-TOOLS ##
56+
################
57+
FROM env AS devel
58+
ENV DISTRIBUTION=rockylinux-9
59+
60+
WORKDIR /root
61+
# Copy the snk key
62+
COPY or-tools.snk /root/or-tools.snk
63+
ENV DOTNET_SNK=/root/or-tools.snk
64+
65+
ARG SRC_GIT_BRANCH
66+
ENV SRC_GIT_BRANCH ${SRC_GIT_BRANCH:-main}
67+
ARG SRC_GIT_SHA1
68+
ENV SRC_GIT_SHA1 ${SRC_GIT_SHA1:-unknown}
69+
70+
ARG OR_TOOLS_PATCH
71+
ENV OR_TOOLS_PATCH ${OR_TOOLS_PATCH:-9999}
72+
73+
# Download sources
74+
# use SRC_GIT_SHA1 to modify the command
75+
# i.e. avoid docker reusing the cache when new commit is pushed
76+
SHELL ["/bin/bash", "-c"]
77+
RUN git clone -b "${SRC_GIT_BRANCH}" --single-branch --depth=1 https://github.com/google/or-tools \
78+
&& [[ $(cd or-tools && git rev-parse --verify HEAD) == ${SRC_GIT_SHA1} ]]
79+
WORKDIR /root/or-tools
80+
81+
# C++
82+
## build
83+
FROM devel AS cpp_build
84+
RUN make detect_cpp \
85+
&& make cpp JOBS=8
86+
## archive
87+
FROM cpp_build AS cpp_archive
88+
RUN make archive_cpp
89+
90+
# .Net
91+
## build
92+
FROM cpp_build AS dotnet_build
93+
ENV USE_DOTNET_CORE_31=ON
94+
RUN make detect_dotnet \
95+
&& make dotnet JOBS=8
96+
## archive
97+
FROM dotnet_build AS dotnet_archive
98+
RUN make archive_dotnet
99+
100+
# Java
101+
## build
102+
FROM cpp_build AS java_build
103+
RUN make detect_java \
104+
&& make java JOBS=8
105+
## archive
106+
FROM java_build AS java_archive
107+
RUN make archive_java
108+
109+
# Python
110+
## build
111+
FROM cpp_build AS python_build
112+
RUN make detect_python \
113+
&& make python JOBS=8
114+
## archive
115+
FROM python_build AS python_archive
116+
RUN make archive_python
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# ref: https://hub.docker.com/_/almalinux
2+
FROM almalinux:9
3+
4+
#############
5+
## SETUP ##
6+
#############
7+
ENV PATH=/usr/local/bin:$PATH
8+
RUN dnf -y update \
9+
&& dnf -y install git wget openssl-devel cmake \
10+
&& dnf -y groupinstall "Development Tools" \
11+
&& dnf clean all \
12+
&& rm -rf /var/cache/dnf
13+
CMD [ "/usr/bin/bash" ]
14+
15+
WORKDIR /root
16+
ADD or-tools_amd64_almalinux-9_cpp_v*.tar.gz .
17+
18+
RUN cd or-tools_*_v* && make test
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# ref: https://hub.docker.com/_/almalinux
2+
FROM almalinux:9
3+
4+
#############
5+
## SETUP ##
6+
#############
7+
ENV PATH=/usr/local/bin:$PATH
8+
RUN dnf -y update \
9+
&& dnf -y install git wget openssl-devel cmake \
10+
&& dnf -y groupinstall "Development Tools" \
11+
&& dnf clean all \
12+
&& rm -rf /var/cache/dnf
13+
CMD [ "/usr/bin/bash" ]
14+
15+
# Install .Net
16+
# see: https://learn.microsoft.com/en-us/dotnet/core/install/linux-scripted-manual#scripted-install
17+
RUN wget -q "https://dot.net/v1/dotnet-install.sh" \
18+
&& chmod a+x dotnet-install.sh \
19+
&& ./dotnet-install.sh -c 3.1 -i /usr/local/bin \
20+
&& ./dotnet-install.sh -c 6.0 -i /usr/local/bin
21+
# Trigger first run experience by running arbitrary cmd
22+
RUN dotnet --info
23+
24+
WORKDIR /root
25+
ADD or-tools_amd64_almalinux-9_dotnet_v*.tar.gz .
26+
27+
RUN cd or-tools_*_v* && make test
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# ref: https://hub.docker.com/_/almalinux
2+
FROM almalinux:9
3+
4+
#############
5+
## SETUP ##
6+
#############
7+
ENV PATH=/usr/local/bin:$PATH
8+
RUN dnf -y update \
9+
&& dnf -y install git wget openssl-devel cmake \
10+
&& dnf -y groupinstall "Development Tools" \
11+
&& dnf clean all \
12+
&& rm -rf /var/cache/dnf
13+
CMD [ "/usr/bin/bash" ]
14+
15+
# Install Java 8 SDK
16+
RUN dnf -y update \
17+
&& dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel maven \
18+
&& dnf clean all \
19+
&& rm -rf /var/cache/dnf
20+
21+
WORKDIR /root
22+
ADD or-tools_amd64_almalinux-9_java_v*.tar.gz .
23+
24+
RUN cd or-tools_*_v* && make test
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# ref: https://hub.docker.com/_/almalinux
2+
FROM almalinux:9
3+
4+
#############
5+
## SETUP ##
6+
#############
7+
ENV PATH=/usr/local/bin:$PATH
8+
RUN dnf -y update \
9+
&& dnf -y install git wget openssl-devel cmake \
10+
&& dnf -y groupinstall "Development Tools" \
11+
&& dnf clean all \
12+
&& rm -rf /var/cache/dnf
13+
CMD [ "/usr/bin/bash" ]
14+
15+
# Install Python
16+
RUN dnf -y update \
17+
&& dnf -y install python3-devel python3-pip python3-numpy \
18+
&& dnf clean all \
19+
&& rm -rf /var/cache/dnf
20+
RUN python3 -m pip install \
21+
absl-py mypy mypy-protobuf pandas
22+
23+
WORKDIR /root
24+
ADD or-tools_amd64_almalinux-9_python_v*.tar.gz .
25+
26+
RUN cd or-tools_*_v* && make test

0 commit comments

Comments
 (0)