morningman commented on a change in pull request #7838: URL: https://github.com/apache/incubator-doris/pull/7838#discussion_r790240314
########## File path: docker/Dockerfile.gcc10 ########## @@ -0,0 +1,123 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +FROM centos:7 AS builder + +# install dependencies +RUN yum makecache && yum -y update && yum -y groupinstall 'Development Tools' && \ + yum install -y byacc automake java-11-openjdk-devel java-1.8.0-openjdk-devel libtool bison binutils-devel zip \ + unzip ncurses-devel curl git wget python2 glibc-static java-1.8.0-openjdk-devel ccache \ + libstdc++-static which psl libpsl-devel centos-release-scl && \ + yum install -y devtoolset-10 devtoolset-10-gcc devtoolset-10-libubsan-devel devtoolset-10-liblsan-devel \ + devtoolset-10-libasan-devel + +# build cmake +ARG CMAKE_VERSION=3.22.1 +ARG CMAKE_BASE_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION} +RUN wget ${CMAKE_BASE_URL}/cmake-${CMAKE_VERSION}-Linux-x86_64.sh -q -O /tmp/cmake-install.sh && \ + chmod u+x /tmp/cmake-install.sh && \ + /tmp/cmake-install.sh --skip-license --prefix=/usr --exclude-subdir && \ + rm /tmp/cmake-install.sh + +# build ninja +ARG NINJA_VER=1.10.2 +ARG NINJA_BASE_URL=https://github.com/ninja-build/ninja/releases/download/v${NINJA_VER} +RUN wget -q ${NINJA_BASE_URL}/ninja-linux.zip -O /tmp/ninja-linux.zip && \ + unzip /tmp/ninja-linux.zip -d /usr/bin/ && \ + rm /tmp/ninja-linux.zip + +# install maven 3.6.3 +ARG MAVEN_VERSION=3.6.3 +ARG MAVEN_BASE_URL=https://downloads.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries +RUN mkdir -p /usr/share/maven /usr/share/maven/ref && \ + wget -q -O /tmp/apache-maven.tar.gz ${MAVEN_BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz && \ + tar -xzf /tmp/apache-maven.tar.gz -C /usr/share/maven --strip-components=1 && \ + rm -f /tmp/apache-maven.tar.gz && \ + ln -s /usr/share/maven/bin/mvn /usr/bin/mvn + +# build flex +ARG FLEX_VERSION=2.6.4 +RUN wget https://github.com/westes/flex/releases/download/v$FLEX_VERSION/flex-$FLEX_VERSION.tar.gz \ + -q -O /tmp/flex-$FLEX_VERSION.tar.gz \ + && cd /tmp/ \ + && tar -xf flex-$FLEX_VERSION.tar.gz \ + && cd flex-$FLEX_VERSION \ + && ./configure --enable-shared=NO \ + && make \ + && make install \ + && rm /tmp/flex-$FLEX_VERSION.tar.gz \ + && rm -rf /tmp/flex-$FLEX_VERSION + +# install nodejs +ARG NODEJS_VERSION=14.16.0 +RUN wget https://nodejs.org/dist/v$NODEJS_VERSION/node-v$NODEJS_VERSION-linux-x64.tar.gz \ + -q -O /tmp/node-v$NODEJS_VERSION-linux-x64.tar.gz \ + && cd /tmp/ && tar -xf node-v$NODEJS_VERSION-linux-x64.tar.gz \ + && cp -r node-v$NODEJS_VERSION-linux-x64/* /usr/local/ \ + && rm /tmp/node-v$NODEJS_VERSION-linux-x64.tar.gz && rm -rf node-v$NODEJS_VERSION-linux-x64 + + +ENV BASH_ENV=/opt/rh/devtoolset-10/enable \ + ENV=/opt/rh/devtoolset-10/enable \ + PROMPT_COMMAND=". /opt/rh/devtoolset-10/enable" + +# there is a repo which is included all of thirdparty +ENV REPOSITORY_URL=https://doris-thirdparty-repo.bj.bcebos.com/thirdparty +ENV DEFAULT_DIR=/var/local +ENV JAVA_HOME="/usr/lib/jvm/java-11" + +# clone lastest source code, download and build third party +COPY incubator-doris ${DEFAULT_DIR}/incubator-doris +RUN cd ${DEFAULT_DIR}/incubator-doris && /bin/bash thirdparty/build-thirdparty.sh \ + && rm -rf ${DEFAULT_DIR}/incubator-doris/thirdparty/src \ + && rm -rf ${DEFAULT_DIR}/doris-thirdparty.tar.gz \ + && rm -rf ${DEFAULT_DIR}/doris-thirdparty \ + && mkdir -p ${DEFAULT_DIR}/thirdparty \ + && mv ${DEFAULT_DIR}/incubator-doris/thirdparty/installed ${DEFAULT_DIR}/thirdparty/ \ + && rm -rf ${DEFAULT_DIR}/incubator-doris + +RUN alternatives --set java java-11-openjdk.x86_64 && alternatives --set javac java-11-openjdk.x86_64 + +# build clang 11 +RUN wget -P ${DEFAULT_DIR} https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/llvm-project-11.0.0.tar.xz \ + && tar Jxf ${DEFAULT_DIR}/llvm-project-11.0.0.tar.xz -C ${DEFAULT_DIR} \ + && echo "source /opt/rh/devtoolset-10/enable" > ${DEFAULT_DIR}/build_clang.sh \ + && echo "cd ${DEFAULT_DIR}/llvm-project-11.0.0" >> ${DEFAULT_DIR}/build_clang.sh \ + && echo "mkdir build" >> ${DEFAULT_DIR}/build_clang.sh \ + && echo "cd build" >> ${DEFAULT_DIR}/build_clang.sh \ + && echo "cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_PROJECTS=\"clang;libcxx;libcxxabi\" -G \"Unix Makefiles\" ../llvm " >> ${DEFAULT_DIR}/build_clang.sh \ + && echo "make -j $(nproc)" >> ${DEFAULT_DIR}/build_clang.sh \ + && echo "make install" >> ${DEFAULT_DIR}/build_clang.sh \ + && echo "rm -rf ${DEFAULT_DIR}/llvm-project-11.0.0*" >> ${DEFAULT_DIR}/build_clang.sh \ + && chmod +x ${DEFAULT_DIR}/build_clang.sh \ + && ${DEFAULT_DIR}/build_clang.sh + +FROM scratch + +COPY --from=builder / / +ENV JAVA_HOME="/usr/lib/jvm/java-11" \ + MAVEN_HOME="/usr/share/maven" \ + BASH_ENV="/opt/rh/devtoolset-10/enable" \ + ENV="/opt/rh/devtoolset-10/enable" \ + PROMPT_COMMAND=". /opt/rh/devtoolset-10/enable" \ + REPOSITORY_URL="https://doris-thirdparty-repo.bj.bcebos.com/thirdparty" \ + DEFAULT_DIR="/var/local" \ + PATH="/var/local/thirdparty/installed/bin:$PATH" \ + DORIS_THIRDPARTY="/var/local/thirdparty" +WORKDIR /root + +CMD ["/bin/bash"] Review comment: carriage return added. > Btw, why do we need this file? Actually not. I just rename the origin Dockerfile to Dockerfile.gcc10, for backup. Maybe delete it later. ########## File path: docker/Dockerfile ########## @@ -18,67 +18,55 @@ FROM centos:7 AS builder # install dependencies -RUN yum makecache && yum -y update && yum -y groupinstall 'Development Tools' && \ - yum install -y byacc automake java-11-openjdk-devel java-1.8.0-openjdk-devel libtool bison binutils-devel zip \ - unzip ncurses-devel curl git wget python2 glibc-static java-1.8.0-openjdk-devel ccache \ - libstdc++-static which psl libpsl-devel centos-release-scl && \ - yum install -y devtoolset-10 devtoolset-10-gcc devtoolset-10-libubsan-devel devtoolset-10-liblsan-devel \ - devtoolset-10-libasan-devel - -# build cmake -ARG CMAKE_VERSION=3.22.1 -ARG CMAKE_BASE_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION} -RUN wget ${CMAKE_BASE_URL}/cmake-${CMAKE_VERSION}-Linux-x86_64.sh -q -O /tmp/cmake-install.sh && \ - chmod u+x /tmp/cmake-install.sh && \ - /tmp/cmake-install.sh --skip-license --prefix=/usr --exclude-subdir && \ - rm /tmp/cmake-install.sh - -# build ninja -ARG NINJA_VER=1.10.2 -ARG NINJA_BASE_URL=https://github.com/ninja-build/ninja/releases/download/v${NINJA_VER} -RUN wget -q ${NINJA_BASE_URL}/ninja-linux.zip -O /tmp/ninja-linux.zip && \ - unzip /tmp/ninja-linux.zip -d /usr/bin/ && \ - rm /tmp/ninja-linux.zip +RUN yum install -y byacc patch automake libtool make which file ncurses-devel gettext-devel unzip bzip2 zip util-linux wget git python2 \ + java-11-openjdk-devel java-1.8.0-openjdk-devel + +# install ninjia +RUN wget -q -O /tmp/ninja-linux.zip https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/ninja-linux.zip \ + && unzip /tmp/ninja-linux.zip -d /usr/bin/ \ + && rm /tmp/ninja-linux.zip + +# install autoconf-2.69 +RUN wget https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/autoconf-2.69.tar.gz && \ Review comment: Remove -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
