From 10aa1ba26eecdf044c1a97e05db53d286e19a3af Mon Sep 17 00:00:00 2001 From: zhongtao Date: Sat, 26 Oct 2024 18:24:21 +1400 Subject: [PATCH 144/156] update centos build script Signed-off-by: zhongtao --- CI/dockerfiles/Dockerfile-centos | 10 ++- docs/build_docs/README_zh.md | 4 + .../script/install_iSulad_on_Centos_7.sh | 83 +++---------------- 3 files changed, 23 insertions(+), 74 deletions(-) diff --git a/CI/dockerfiles/Dockerfile-centos b/CI/dockerfiles/Dockerfile-centos index af3ce035..0b11014b 100644 --- a/CI/dockerfiles/Dockerfile-centos +++ b/CI/dockerfiles/Dockerfile-centos @@ -24,6 +24,11 @@ FROM centos:7.6.1810 MAINTAINER LiFeng +RUN sed -i 's/mirror.centos.org/archive.kernel.org\/centos-vault/g' /etc/yum.repos.d/*.repo +RUN sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo +RUN sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo +RUN echo "sslverify=false" | tee -a /etc/yum.conf + # Install dependency package RUN yum clean all && yum makecache && yum install -y epel-release && yum swap -y fakesystemd systemd && \ yum update -y && \ @@ -113,6 +118,9 @@ RUN git config --global http.sslverify false # install rust RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +RUN mkdir -p /root/.cargo/ +RUN touch ${HOME}/.cargo/config + # configure rust RUN echo "[source.crates-io]" >> ${HOME}/.cargo/config && \ echo "[source.local-registry]" >> ${HOME}/.cargo/config && \ @@ -286,7 +294,7 @@ RUN export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH && \ make install && \ ldconfig -RUN dnf install -y ncurses-devel && dnf clean all +RUN yum install -y ncurses-devel && yum clean all VOLUME [ "/sys/fs/cgroup" ] CMD ["/usr/sbin/init"] diff --git a/docs/build_docs/README_zh.md b/docs/build_docs/README_zh.md index f27fbc4f..6450bf7e 100644 --- a/docs/build_docs/README_zh.md +++ b/docs/build_docs/README_zh.md @@ -40,6 +40,8 @@ $ cd iSulad/docs/build_docs/guide/script $ sudo ./install_iSulad_on_Centos_7.sh ``` +若需要在centos容器中编译iSulad,可参照iSulad编译可使用的镜像dockerfile[Dockerfile-ubuntu](../../CI/dockerfiles/Dockerfile-ubuntu)。 + ### Ubuntu 我们同样在代码仓中提供了在Ubuntu上自动化安装的脚本: [install_iSulad_on_Ubuntu_20_04_LTS](./guide/script/install_iSulad_on_Ubuntu_20_04_LTS.sh),您只需要执行这个脚本就可以自动编译安装iSulad以及其依赖的组件。 @@ -51,6 +53,8 @@ $ sudo chmod +x ./install_iSulad_on_Ubuntu_20_04_LTS.sh $ sudo ./install_iSulad_on_Ubuntu_20_04_LTS.sh ``` +若需要在ubuntu容器中编译iSulad,可参照iSulad编译可使用的镜像dockerfile[Dockerfile-centos](../../CI/dockerfiles/)。 + ## 构建指南 我们提供了多种构建iSulad的方式: diff --git a/docs/build_docs/guide/script/install_iSulad_on_Centos_7.sh b/docs/build_docs/guide/script/install_iSulad_on_Centos_7.sh index b268d777..d83520e1 100755 --- a/docs/build_docs/guide/script/install_iSulad_on_Centos_7.sh +++ b/docs/build_docs/guide/script/install_iSulad_on_Centos_7.sh @@ -5,93 +5,29 @@ set -x set -e # install neccessary packages -yum install -y patch automake autoconf libtool cmake make libcap libcap-devel libselinux libselinux-devel libseccomp libseccomp-devel yajl-devel git libcgroup tar python3 python3-pip device-mapper-devel libcurl-devel zlib-devel glibc-headers openssl-devel gcc gcc-c++ systemd-devel systemd-libs golang libtar libtar-devel which +# yum install -y patch automake autoconf libtool cmake make libcap libcap-devel libselinux libselinux-devel libseccomp libseccomp-devel yajl-devel git libcgroup tar python3 python3-pip device-mapper-devel libcurl-devel zlib-devel glibc-headers openssl-devel gcc gcc-c++ systemd-devel systemd-libs golang libtar libtar-devel which # export LDFLAGS export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:$LD_LIBRARY_PATH - echo "/usr/local/lib" >> /etc/ld.so.conf +echo "/usr/local/lib" >> /etc/ld.so.conf BUILD_DIR=/tmp/build_isulad rm -rf $BUILD_DIR mkdir -p $BUILD_DIR -# build libarchive -cd $BUILD_DIR -git clone https://gitee.com/src-openeuler/libarchive.git -cd libarchive -git checkout -b openEuler-20.03-LTS-tag openEuler-20.03-LTS-tag -tar -zxvf libarchive-3.4.1.tar.gz -cd libarchive-3.4.1 -patch -p1 -F1 -s < ../libarchive-uninitialized-value.patch -cd build -cmake -DCMAKE_USE_SYSTEM_LIBRARIES=ON ../ -make -j $(nproc) -make install -ldconfig - -# build protobuf -cd $BUILD_DIR -git clone https://gitee.com/src-openeuler/protobuf.git -cd protobuf -git checkout openEuler-20.03-LTS-tag -tar -xzvf protobuf-all-3.9.0.tar.gz -cd protobuf-3.9.0 -./autogen.sh -./configure -make -j $(nproc) -make install -ldconfig - -# build c-ares -cd $BUILD_DIR -git clone https://gitee.com/src-openeuler/c-ares.git -cd c-ares -git checkout openEuler-20.03-LTS-tag -tar -xzvf c-ares-1.15.0.tar.gz -cd c-ares-1.15.0 -autoreconf -if -./configure --enable-shared --disable-dependency-tracking -make -j $(nproc) -make install -ldconfig - -# build grpc -cd $BUILD_DIR -git clone https://gitee.com/src-openeuler/grpc.git -cd grpc -git checkout openEuler-20.03-LTS-tag -tar -xzvf grpc-1.22.0.tar.gz -cd grpc-1.22.0 -make -j $(nproc) -make install -ldconfig - -# build libwebsockets -cd $BUILD_DIR -git clone https://gitee.com/src-openeuler/libwebsockets.git -cd libwebsockets -git checkout openEuler-20.03-LTS-tag -tar -xzvf libwebsockets-2.4.2.tar.gz -cd libwebsockets-2.4.2 -patch -p1 -F1 -s < ../libwebsockets-fix-coredump.patch -mkdir build -cd build -cmake -DLWS_WITH_SSL=0 -DLWS_MAX_SMP=32 -DCMAKE_BUILD_TYPE=Debug ../ -make -j $(nproc) -make install -ldconfig - # build lxc cd $BUILD_DIR git clone https://gitee.com/src-openeuler/lxc.git cd lxc +git config --global --add safe.directory $BUILD_DIR/lxc/lxc-5.0.2 ./apply-patches -cd lxc-4.0.3 -./autogen.sh -./configure -make -j +cd lxc-5.0.2 +sed -i 's/return open(rpath, (int)((unsigned int)flags | O_CLOEXEC));/return open(rpath, (int)((unsigned int)flags | O_CLOEXEC), 0);/g' src/lxc/isulad_utils.c +meson setup -Disulad=true \ + -Dprefix=/usr build +meson compile -C build make install # build lcr @@ -118,8 +54,9 @@ make install cd $BUILD_DIR git clone https://gitee.com/openeuler/iSulad.git cd iSulad +sed -i 's/-O2 -Wall -fPIE/-O2 -Wall -fPIE -std=gnu99/g' cmake/set_build_flags.cmake mkdir build cd build -cmake .. +cmake -DDISABLE_WERROR=on ../ make make install -- 2.34.1