未验证 提交 1f5fd405 编写于 作者: F fuxingbit 提交者: GitHub

update docker local build (#530)

* update docker local build
上级 22006cd1
......@@ -38,7 +38,15 @@ RUN bash pre_build.sh \
//:cli \
//src/primihub/pybind_warpper:opt_paillier_c2py \
//src/primihub/pybind_warpper::linkcontext \
&& tar zcf /opt/bazel-bin.tar.gz --exclude=*_objs ./bazel-bin/*
&& tar zcf bazel-bin.tar.gz bazel-bin/cli \
bazel-bin/node \
bazel-bin/py_main \
bazel-bin/src/primihub/pybind_warpper/opt_paillier_c2py.so \
bazel-bin/src/primihub/pybind_warpper/linkcontext.so \
python \
config \
example \
data
FROM ubuntu:20.04 as runner
......@@ -50,23 +58,15 @@ RUN apt-get update \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /opt/bazel-bin.tar.gz /opt/bazel-bin.tar.gz
# Copy test data files to /tmp/
COPY --from=builder /src/data /app/data
# Copy all test config files to /app/config
COPY --from=builder /src/config /app/config
# Copy primihub python sources to /app and setup to system python3
COPY --from=builder /src/python /app/python
COPY --from=builder /src/src/primihub/protos/ /app/src/primihub/protos/
WORKDIR /app
RUN tar zxf /opt/bazel-bin.tar.gz \
&& mkdir log
# Copy opt_paillier_c2py.so linkcontext.so to /app/python, this enable setup.py find it.
RUN mv $TARGET_PATH/src/primihub/pybind_warpper/opt_paillier_c2py.so /app/python/ \
&& mv $TARGET_PATH/src/primihub/pybind_warpper/linkcontext.so /app/python/ \
&& ln -s bazel-bin/node primihub-node && ln -s bazel-bin/cli primihub-cli
RUN tar zxf /opt/bazel-bin.tar.gz \
&& mkdir log \
&& ln -s bazel-bin/node primihub-node \
&& ln -s bazel-bin/cli primihub-cli
WORKDIR /app/python
......
......@@ -10,27 +10,16 @@ RUN apt-get update \
&& ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& rm -rf /var/lib/apt/lists/*
ARG TARGET_PATH=/root/.cache/bazel/_bazel_root/17a1cd4fb136f9bc7469e0db6305b35a/execroot/__main__/bazel-out/k8-fastbuild/bin
WORKDIR $TARGET_PATH
# Copy binaries to TARGET_PATH
COPY . ./
# Change WorkDir to /app
WORKDIR /app
ADD bazel-bin.tar.gz ./
COPY src/primihub/protos/ src/primihub/protos/
# Make symlink to primihub-node & primihub-cli
RUN mkdir log \
&& ln -s $TARGET_PATH/node /app/primihub-node && ln -s $TARGET_PATH/cli /app/primihub-cli
COPY ./example ./example
# Copy all test config files to /app
COPY ./data ./data
COPY ./config ./config
# Copy primihub python sources to /app and setup to system python3
COPY ./python ./python
COPY ./src/primihub/protos/ ./src/primihub/protos/
RUN cp $TARGET_PATH/src/primihub/pybind_warpper/opt_paillier_c2py.so /app/python/
RUN cp $TARGET_PATH/src/primihub/pybind_warpper/linkcontext.so /app/python/
&& ln -s bazel-bin/node primihub-node \
&& ln -s bazel-bin/cli primihub-cli
WORKDIR /app/python
RUN python3 -m pip install --upgrade pip \
&& python3 -m pip install -r requirements.txt -i https://pypi.douban.com/simple/ \
......
......@@ -11,19 +11,13 @@ RUN apt-get update \
WORKDIR /app
COPY primihub-linux-amd64.tar.gz primihub-linux-arm64.tar.gz /opt/
COPY example ./example
COPY data/ ./data
COPY config/ ./config
COPY python/ ./python
COPY src/primihub/protos/ src/primihub/protos/
RUN ARCH=`arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/` \
&& tar zxf /opt/primihub-linux-${ARCH}.tar.gz \
&& mkdir log \
&& mv bazel-bin/src/primihub/pybind_warpper/opt_paillier_c2py.so python/ \
&& mv bazel-bin/src/primihub/pybind_warpper/linkcontext.so python/ \
&& ln -s bazel-bin/node primihub-node && ln -s bazel-bin/cli primihub-cli
&& ln -s bazel-bin/node primihub-node \
&& ln -s bazel-bin/cli primihub-cli
WORKDIR /app/python
......
......@@ -17,7 +17,6 @@ bash pre_build.sh
ARCH=`arch`
bazel build --config=linux_$ARCH --define enable_mysql_driver=true //:node \
//:py_main \
//:cli \
......@@ -29,30 +28,18 @@ if [ $? -ne 0 ]; then
exit
fi
BASE_DIR=`ls -l | grep bazel-bin | awk '{print $11}'`
if [ ! -d "$BASE_DIR" ]; then
echo "BASE_DIR IS NULL"
exit
fi
key_word="ARG TARGET_PATH="
row_num=$(sed -n "/${key_word}/=" Dockerfile.local)
sed -i "${row_num}s#.*#ARG TARGET_PATH="${BASE_DIR}"#" Dockerfile.local
rm -rf $BASE_DIR/python $BASE_DIR/config $BASE_DIR/example
rm -f $BASE_DIR/Dockerfile.local
rm -f $BASE_DIR/.dockerignore
rm -rf $BASE_DIR/data
cp -r ./example $BASE_DIR/
cp -r ./data $BASE_DIR/
cp -r ./python $BASE_DIR/
cp -r ./config $BASE_DIR/
cp ./Dockerfile.local $BASE_DIR/
cp -r ./src $BASE_DIR/
cd $BASE_DIR
find ./ -name "_objs" > .dockerignore
git rev-parse --abbrev-ref HEAD >> commit.txt
git rev-parse HEAD >> commit.txt
tar zcf bazel-bin.tar.gz bazel-bin/cli \
bazel-bin/node \
bazel-bin/py_main \
bazel-bin/src/primihub/pybind_warpper/opt_paillier_c2py.so \
bazel-bin/src/primihub/pybind_warpper/linkcontext.so \
python \
config \
example \
data \
commit.txt
docker build -t $IMAGE_NAME:$TAG . -f Dockerfile.local
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册