From 9e7c3f22951763b0224c8f7cd24d9288984bfba7 Mon Sep 17 00:00:00 2001 From: cyjseagull Date: Fri, 6 Dec 2024 17:06:24 +0800 Subject: [PATCH] fix docker file --- docker-files/cpp/Dockerfile | 29 ++++------------ docker-files/cpp/build.sh | 16 +++++++++ docker-files/cpp/vcpkg/Dockerfile | 34 +++++++++++++++++++ docker-files/cpp/vcpkg/build.sh | 4 +++ docker-files/model/base/Dockerfile | 11 ++++++ docker-files/model/base/build.sh | 4 +++ .../model/{ => base}/depends/requirements.txt | 0 docker-files/model/{ => model}/Dockerfile | 26 ++++++-------- docker-files/model/model/build.sh | 4 +++ 9 files changed, 91 insertions(+), 37 deletions(-) create mode 100644 docker-files/cpp/build.sh create mode 100644 docker-files/cpp/vcpkg/Dockerfile create mode 100644 docker-files/cpp/vcpkg/build.sh create mode 100644 docker-files/model/base/Dockerfile create mode 100644 docker-files/model/base/build.sh rename docker-files/model/{ => base}/depends/requirements.txt (100%) rename docker-files/model/{ => model}/Dockerfile (52%) create mode 100644 docker-files/model/model/build.sh diff --git a/docker-files/cpp/Dockerfile b/docker-files/cpp/Dockerfile index d14397eb..cd265273 100644 --- a/docker-files/cpp/Dockerfile +++ b/docker-files/cpp/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:18.04 as builder +FROM wedpr_component_vcpkg_cache:latest as builder LABEL maintainer service@webank.com @@ -8,26 +8,12 @@ ARG SOURCE_BRANCH ENV DEBIAN_FRONTEND=noninteractive \ SOURCE=${SOURCE_BRANCH:-master} -RUN apt-get -q update && apt-get install -qy --no-install-recommends \ - vim curl git make build-essential cmake \ - libgmp-dev flex bison patch libzstd-dev unzip ninja-build pkg-config curl zip tar ccache uuid-runtime automake autoconf \ - m4 tcpdump net-tools libkrb5-dev krb5-user pkg-config default-libmysqlclient-dev gcc g++ \ - && ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ - && apt-get install -qy --no-install-recommends tzdata \ - && dpkg-reconfigure --frontend noninteractive tzdata \ - && rm -rf /var/lib/apt/lists/* - -# install rust -RUN curl https://sh.rustup.rs -sSf | bash -s -- -y - -ENV PATH="/root/.cargo/bin:${PATH}" - -ENV VCPKG_FORCE_SYSTEM_BINARIES=1 - -RUN git clone https://github.com/WeBankBlockchain/WeDPR-Component.git --recursive --depth=1 -b ${SOURCE} \ - && mkdir -p WeDPR-Component/cpp/build && cd WeDPR-Component/cpp/build \ - && cmake .. -DBUILD_STATIC=ON && make -j8 && cat /WeDPR-Component/cpp/build/*.log - +RUN git clone https://github.com/WeBankBlockchain/WeDPR-Component.git --recursive --depth=1 -b ${SOURCE} \ +# ln the cached vcpkg and compile +RUN cd WeDPR-Component/cpp && rm -rf vcpkg && ln -s /vcpkg \ + && mkdir -p build && cd build \ + && cmake .. -DBUILD_STATIC=ON \ + && make -j8 FROM ubuntu:18.04 as wedpr-gateway-service LABEL maintainer service@webank.com @@ -44,7 +30,6 @@ COPY --from=builder /WeDPR-Component/cpp/build/bin/ppc-gateway-service /data/hom ENTRYPOINT ["/data/home/wedpr/wedpr-gateway-service/ppc-gateway-service", "-c", "config.ini"] - FROM ubuntu:18.04 as wedpr-pro-node-service LABEL maintainer service@webank.com diff --git a/docker-files/cpp/build.sh b/docker-files/cpp/build.sh new file mode 100644 index 00000000..0e13dd39 --- /dev/null +++ b/docker-files/cpp/build.sh @@ -0,0 +1,16 @@ +#!/bin/bash +echo "========= BUILD IMAGES for WEDPR-COMPONENT, BRANCH: ${1} =========" + +echo "* build wedpr-gateway-service image" +docker build --target wedpr-gateway-service --build-arg SOURCE_BRANCH=${1} -t wedpr-gateway-service . +echo "* build wedpr-gateway-service image success" + +echo "* build wedpr-pro-node-service image" +docker build --target wedpr-pro-node-service --build-arg SOURCE_BRANCH=${1} -t wedpr-pro-node-service . +echo "* build wedpr-pro-node-service image success" + +echo "* build wedpr-mpc-service image" +docker build --target wedpr-mpc-service --build-arg SOURCE_BRANCH=${1} -t wedpr-mpc-service . +echo "* build wedpr-mpc-service image success" + +echo "========= BUILD IMAGES for WEDPR-COMPONENT, BRANCH: ${1} =========" \ No newline at end of file diff --git a/docker-files/cpp/vcpkg/Dockerfile b/docker-files/cpp/vcpkg/Dockerfile new file mode 100644 index 00000000..98e744b2 --- /dev/null +++ b/docker-files/cpp/vcpkg/Dockerfile @@ -0,0 +1,34 @@ +FROM ubuntu:18.04 as wedpr_component_vcpkg_cache + +LABEL maintainer service@webank.com + +WORKDIR / + +ARG SOURCE_BRANCH +ENV DEBIAN_FRONTEND=noninteractive \ + SOURCE=${SOURCE_BRANCH:-master} + +RUN apt-get -q update && apt-get install -qy --no-install-recommends \ + vim curl git make build-essential cmake \ + libgmp-dev flex bison patch libzstd-dev unzip ninja-build pkg-config curl zip tar ccache uuid-runtime automake autoconf \ + m4 tcpdump net-tools libkrb5-dev krb5-user pkg-config default-libmysqlclient-dev gcc g++ \ + && ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ + && apt-get install -qy --no-install-recommends tzdata \ + && dpkg-reconfigure --frontend noninteractive tzdata \ + && rm -rf /var/lib/apt/lists/* + +# install rust +RUN curl https://sh.rustup.rs -sSf | bash -s -- -y + +ENV PATH="/root/.cargo/bin:${PATH}" + +ENV VCPKG_FORCE_SYSTEM_BINARIES=1 + +# first download and compile the vcpkg dependecies +RUN git clone https://github.com/WeBankBlockchain/WeDPR-Component.git --recursive --depth=1 -b ${SOURCE} \ + && mkdir -p WeDPR-Component/cpp/build && cd WeDPR-Component/cpp/build \ + && cmake .. -DBUILD_STATIC=ON \ + +# move the vcpkg dependecies to /vcpkg +RUN mv /WeDPR-Component/cpp/vcpkg / + diff --git a/docker-files/cpp/vcpkg/build.sh b/docker-files/cpp/vcpkg/build.sh new file mode 100644 index 00000000..87b5f0ea --- /dev/null +++ b/docker-files/cpp/vcpkg/build.sh @@ -0,0 +1,4 @@ +#!/bin/bash +echo "* build image: wedpr_component_vcpkg_cache, branch: ${1}" +docker build --build-arg SOURCE_BRANCH=${1} -t wedpr_component_vcpkg_cache . +echo "* build image: wedpr_component_vcpkg_cache success, branch: ${1}" \ No newline at end of file diff --git a/docker-files/model/base/Dockerfile b/docker-files/model/base/Dockerfile new file mode 100644 index 00000000..f1d41336 --- /dev/null +++ b/docker-files/model/base/Dockerfile @@ -0,0 +1,11 @@ +FROM wedpr-image:latest as wedpr-model-service-base-image + +LABEL maintainer service@webank.com + +RUN apt-get install -qy --no-install-recommends libkrb5-dev pkg-config default-libmysqlclient-dev +RUN mkdir -p /data/home/wedpr +# copy requirements +COPY depends/requirements.txt /data/home/wedpr/requirements.txt + +# install the requirements +RUN pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ -r /data/home/wedpr/requirements.txt diff --git a/docker-files/model/base/build.sh b/docker-files/model/base/build.sh new file mode 100644 index 00000000..55788924 --- /dev/null +++ b/docker-files/model/base/build.sh @@ -0,0 +1,4 @@ +#!/bin/bash +echo "* build image: wedpr-model-service-base-image" +docker build -t wedpr-model-service-base-image . +echo "* build image: wedpr-model-service-base-image success" \ No newline at end of file diff --git a/docker-files/model/depends/requirements.txt b/docker-files/model/base/depends/requirements.txt similarity index 100% rename from docker-files/model/depends/requirements.txt rename to docker-files/model/base/depends/requirements.txt diff --git a/docker-files/model/Dockerfile b/docker-files/model/model/Dockerfile similarity index 52% rename from docker-files/model/Dockerfile rename to docker-files/model/model/Dockerfile index 7c57b93b..234498cb 100644 --- a/docker-files/model/Dockerfile +++ b/docker-files/model/model/Dockerfile @@ -1,5 +1,4 @@ -FROM wedpr-image:latest as wedpr-model-service - +FROM wedpr-model-service-base-image:latest as wedpr-model-service LABEL maintainer service@webank.com ENV LANG zh_CN.UTF-8 @@ -9,23 +8,20 @@ ENV LC_ALL zh_CN.UTF-8 WORKDIR /data/home/wedpr ARG SOURCE_BRANCH ENV DEBIAN_FRONTEND=noninteractive \ - SOURCE=${SOURCE_BRANCH:-master} - -RUN mkdir -p /data/home/wedpr -# copy requirements -COPY depends/requirements.txt /data/home/wedpr/requirements.txt + SOURCE=${SOURCE_BRANCH:-main} -# install the requirements -RUN pip install --no-cache-dir -i https://pypi.mirrors.ustc.edu.cn/simple/ -r /data/home/wedpr/requirements.txt +# install the gateway sdk +# TODO: replace with pypip +RUN pip install -i https://test.pypi.org/simple/ wedpr-python-gateway-sdk -# obtain the source -RUN git clone https://github.com/WeBankBlockchain/WeDPR-Component.git --recursive --depth=1 -b ${SOURCE} +# obtain the source, no need to fetch the submodule(vcpkg) here +RUN git clone https://github.com/WeBankBlockchain/WeDPR-Component.git -b ${SOURCE} # move the files to the /data/app path RUN mkdir -p /data/home/wedpr/wedpr-model/ \ - && mv /data/home/wedpr/WeDPR-Component/python/ppc_common /data/home/wedpr/wedpr-model/ppc-common \ - && mv /data/home/wedpr/WeDPR-Component/python/ppc_model /data/home/wedpr/wedpr-model/ppc-model \ - && mv /data/home/wedpr/WeDPR-Component/python/aes_key.bin /data/home/wedpr/wedpr-model/ppc-model \ - && cp /data/home/wedpr/model/ppc-model/tools/*.sh /data/home/wedpr/wedpr-model/ppc-model + && mv /data/home/wedpr/WeDPR-Component/python/ppc_common /data/home/wedpr/wedpr-model/ppc_common \ + && mv /data/home/wedpr/WeDPR-Component/python/ppc_model /data/home/wedpr/wedpr-model/ppc_model \ + && mv /data/home/wedpr/WeDPR-Component/python/aes_key.bin /data/home/wedpr/wedpr-model/ppc_model \ + && cp /data/home/wedpr/WeDPR-Component/Python/ppc_model/tools/*.sh /data/home/wedpr/wedpr-model/ppc_model # clear the WeDPR-Component RUN rm -rf /data/home/wedpr/WeDPR-Component diff --git a/docker-files/model/model/build.sh b/docker-files/model/model/build.sh new file mode 100644 index 00000000..51ffda7a --- /dev/null +++ b/docker-files/model/model/build.sh @@ -0,0 +1,4 @@ +#!/bin/bash +echo "* build image: wedpr-model-service, branch: ${1}" +docker build --build-arg SOURCE_BRANCH=${1} -t wedpr-model-service . +echo "* build image: wedpr-model-service success, branch: ${1}" \ No newline at end of file