17
17
# Dockerfile for installing the necessary dependencies for building Hadoop.
18
18
# See BUILDING.txt.
19
19
20
- FROM centos :8
20
+ FROM rockylinux :8
21
21
22
22
WORKDIR /root
23
23
@@ -30,25 +30,18 @@ COPY pkg-resolver pkg-resolver
30
30
RUN chmod a+x pkg-resolver/*.sh pkg-resolver/*.py \
31
31
&& chmod a+r pkg-resolver/*.json
32
32
33
- ######
34
- # Centos 8 has reached its EOL and the packages
35
- # are no longer available on mirror.centos.org site.
36
- # Please see https://www.centos.org/centos-linux-eol/
37
- ######
38
- RUN pkg-resolver/set-vault-as-baseurl-centos.sh centos:8
39
-
40
33
######
41
34
# Install packages from yum
42
35
######
43
36
# hadolint ignore=DL3008,SC2046
44
37
RUN yum update -y \
45
38
&& yum install -y python3 \
46
- && yum install -y $(pkg-resolver/resolve.py centos :8)
39
+ && yum install -y $(pkg-resolver/resolve.py rockylinux :8)
47
40
48
41
####
49
42
# Install EPEL
50
43
####
51
- RUN pkg-resolver/install-epel.sh centos :8
44
+ RUN pkg-resolver/install-epel.sh rockylinux :8
52
45
53
46
RUN dnf --enablerepo=powertools install -y \
54
47
doxygen \
@@ -69,50 +62,65 @@ SHELL ["/bin/bash", "--login", "-c"]
69
62
# Set the environment variables needed for CMake
70
63
# to find and use GCC 9 for compilation
71
64
######
72
- ENV GCC_HOME "/opt/rh/gcc-toolset-9"
73
- ENV CC "${GCC_HOME}/root/usr/bin/gcc"
74
- ENV CXX "${GCC_HOME}/root/usr/bin/g++"
75
- ENV MODULES_RUN_QUARANTINE "LD_LIBRARY_PATH LD_PRELOAD"
76
- ENV MODULES_CMD "/usr/share/Modules/libexec/modulecmd.tcl"
77
- ENV SHLVL 1
78
- ENV MODULEPATH "/etc/scl/modulefiles:/usr/share/Modules/modulefiles:/etc/modulefiles:/usr/share/modulefiles"
79
- ENV MODULEPATH_modshare "/usr/share/modulefiles:1:/usr/share/Modules/modulefiles:1:/etc/modulefiles:1"
80
- ENV MODULESHOME "/usr/share/Modules"
81
- ENV LD_LIBRARY_PATH "${GCC_HOME}/root/usr/lib64:${GCC_HOME}/root/usr/lib:${GCC_HOME}/root/usr/lib64/dyninst:${GCC_HOME}/root/usr/lib/dyninst:${GCC_HOME}/root/usr/lib64:${GCC_HOME}/root/usr/lib:/usr/lib:/usr/lib64"
82
- ENV PCP_DIR "${GCC_HOME}/root"
83
- ENV MANPATH "${GCC_HOME}/root/usr/share/man::"
84
- ENV PATH "${GCC_HOME}/root/usr/bin:/usr/share/Modules/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
85
- ENV PKG_CONFIG_PATH "${GCC_HOME}/root/usr/lib64/pkgconfig"
86
- ENV INFOPATH "${GCC_HOME}/root/usr/share/info"
65
+ ENV GCC_HOME= "/opt/rh/gcc-toolset-9"
66
+ ENV CC= "${GCC_HOME}/root/usr/bin/gcc"
67
+ ENV CXX= "${GCC_HOME}/root/usr/bin/g++"
68
+ ENV MODULES_RUN_QUARANTINE= "LD_LIBRARY_PATH LD_PRELOAD"
69
+ ENV MODULES_CMD= "/usr/share/Modules/libexec/modulecmd.tcl"
70
+ ENV SHLVL= 1
71
+ ENV MODULEPATH= "/etc/scl/modulefiles:/usr/share/Modules/modulefiles:/etc/modulefiles:/usr/share/modulefiles"
72
+ ENV MODULEPATH_modshare= "/usr/share/modulefiles:1:/usr/share/Modules/modulefiles:1:/etc/modulefiles:1"
73
+ ENV MODULESHOME= "/usr/share/Modules"
74
+ ENV LD_LIBRARY_PATH= "${GCC_HOME}/root/usr/lib64:${GCC_HOME}/root/usr/lib:${GCC_HOME}/root/usr/lib64/dyninst:${GCC_HOME}/root/usr/lib/dyninst:${GCC_HOME}/root/usr/lib64:${GCC_HOME}/root/usr/lib:/usr/lib:/usr/lib64"
75
+ ENV PCP_DIR= "${GCC_HOME}/root"
76
+ ENV MANPATH= "${GCC_HOME}/root/usr/share/man::"
77
+ ENV PATH= "${GCC_HOME}/root/usr/bin:/usr/share/Modules/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
78
+ ENV PKG_CONFIG_PATH= "${GCC_HOME}/root/usr/lib64/pkgconfig"
79
+ ENV INFOPATH= "${GCC_HOME}/root/usr/share/info"
87
80
88
81
# TODO: Set locale
89
82
90
83
######
91
84
# Set env vars required to build Hadoop
92
85
######
93
- ENV MAVEN_HOME /opt/maven
94
- ENV PATH "${PATH}:${MAVEN_HOME}/bin"
86
+ ENV MAVEN_HOME= /opt/maven
87
+ ENV PATH= "${PATH}:${MAVEN_HOME}/bin"
95
88
# JAVA_HOME must be set in Maven >= 3.5.0 (MNG-6003)
96
- ENV JAVA_HOME /usr/lib/jvm/java-1.8.0
89
+ ENV JAVA_HOME= /usr/lib/jvm/java-1.8.0
97
90
98
91
#######
99
92
# Set env vars for SpotBugs
100
93
#######
101
- ENV SPOTBUGS_HOME /opt/spotbugs
94
+ ENV SPOTBUGS_HOME= /opt/spotbugs
102
95
103
96
#######
104
97
# Set env vars for Google Protobuf 3.21.12
105
98
#######
106
- ENV PROTOBUF_HOME /opt/protobuf
107
- ENV PATH "${PATH}:/opt/protobuf/bin"
99
+ ENV PROTOBUF_HOME=/opt/protobuf
100
+ ENV PATH="${PATH}:${PROTOBUF_HOME}/bin"
101
+
102
+ # Skip gpg verification when downloading Yetus via yetus-wrapper
103
+ ENV HADOOP_SKIP_YETUS_VERIFICATION=true
108
104
109
105
######
110
106
# Install packages
111
107
######
112
- RUN pkg-resolver/install-maven.sh centos :8
113
- RUN pkg-resolver/install-cmake.sh centos :8
114
- RUN pkg-resolver/install-boost.sh centos :8
115
- RUN pkg-resolver/install-spotbugs.sh centos :8
116
- RUN pkg-resolver/install-protobuf.sh centos :8
117
- RUN pkg-resolver/install-zstandard.sh centos :8
108
+ RUN pkg-resolver/install-maven.sh rockylinux :8
109
+ RUN pkg-resolver/install-cmake.sh rockylinux :8
110
+ RUN pkg-resolver/install-boost.sh rockylinux :8
111
+ RUN pkg-resolver/install-spotbugs.sh rockylinux :8
112
+ RUN pkg-resolver/install-protobuf.sh rockylinux :8
113
+ RUN pkg-resolver/install-zstandard.sh rockylinux :8
118
114
RUN pkg-resolver/install-common-pkgs.sh
115
+
116
+ ###
117
+ # Everything past this point is either not needed for testing or breaks Yetus.
118
+ # So tell Yetus not to read the rest of the file:
119
+ # YETUS CUT HERE
120
+ ###
121
+
122
+ # Add a welcome message and environment checks.
123
+ COPY hadoop_env_checks.sh /root/hadoop_env_checks.sh
124
+ RUN chmod 755 /root/hadoop_env_checks.sh
125
+ # hadolint ignore=SC2016
126
+ RUN echo '${HOME}/hadoop_env_checks.sh' >> /root/.bashrc
0 commit comments