From d07a98da45a684a605669f1c902d9f28f5d21ecf Mon Sep 17 00:00:00 2001 From: LeoQi Date: Fri, 20 Jul 2018 03:25:40 +0800 Subject: add docker build scripts for testing-scheduler JIRA: BOTTLENECK-239 add build and run scripts of docker. Change-Id: Ide7ff57380039f579fabbd6c18ddd794dcae220b Signed-off-by: Zheng Qibin --- testing-scheduler/.gitignore | 33 ++++++++++++++++++++++ testing-scheduler/docker/build.sh | 20 +++++++++++++ testing-scheduler/docker/clean.sh | 32 +++++++++++++++++++++ testing-scheduler/docker/plugin/Dockerfile | 24 ++++++++++++++++ testing-scheduler/docker/plugin/build.sh | 28 ++++++++++++++++++ testing-scheduler/docker/plugin/run.sh | 14 +++++++++ testing-scheduler/docker/run.sh | 20 +++++++++++++ testing-scheduler/docker/server/Dockerfile | 29 +++++++++++++++++++ testing-scheduler/docker/server/build.sh | 20 +++++++++++++ testing-scheduler/docker/server/clean.sh | 17 +++++++++++ testing-scheduler/docker/server/run.sh | 17 +++++++++++ testing-scheduler/docker/ui/Dockerfile | 16 +++++++++++ testing-scheduler/docker/ui/build.sh | 22 +++++++++++++++ testing-scheduler/docker/ui/clean.sh | 19 +++++++++++++ testing-scheduler/docker/ui/pre-builder/Dockerfile | 18 ++++++++++++ testing-scheduler/docker/ui/pre-builder/build.sh | 17 +++++++++++ testing-scheduler/docker/ui/pre-builder/run.sh | 21 ++++++++++++++ testing-scheduler/docker/ui/run.sh | 17 +++++++++++ 18 files changed, 384 insertions(+) create mode 100644 testing-scheduler/.gitignore create mode 100644 testing-scheduler/docker/build.sh create mode 100644 testing-scheduler/docker/clean.sh create mode 100644 testing-scheduler/docker/plugin/Dockerfile create mode 100644 testing-scheduler/docker/plugin/build.sh create mode 100644 testing-scheduler/docker/plugin/run.sh create mode 100644 testing-scheduler/docker/run.sh create mode 100644 testing-scheduler/docker/server/Dockerfile create mode 100644 testing-scheduler/docker/server/build.sh create mode 100644 testing-scheduler/docker/server/clean.sh create mode 100644 testing-scheduler/docker/server/run.sh create mode 100644 testing-scheduler/docker/ui/Dockerfile create mode 100644 testing-scheduler/docker/ui/build.sh create mode 100644 testing-scheduler/docker/ui/clean.sh create mode 100644 testing-scheduler/docker/ui/pre-builder/Dockerfile create mode 100644 testing-scheduler/docker/ui/pre-builder/build.sh create mode 100644 testing-scheduler/docker/ui/pre-builder/run.sh create mode 100644 testing-scheduler/docker/ui/run.sh (limited to 'testing-scheduler') diff --git a/testing-scheduler/.gitignore b/testing-scheduler/.gitignore new file mode 100644 index 00000000..68eeb624 --- /dev/null +++ b/testing-scheduler/.gitignore @@ -0,0 +1,33 @@ +################################# +## files in server directory +################################# + +# PYTHON PYC FILE +/server/**/*.pyc + +############################################################# + + +################################# +## files in ui directory +################################# +/ui/.DS_Store +/ui/node_modules/ +/ui/dist/ +/ui/npm-debug.log* +/ui/yarn-debug.log* +/ui/yarn-error.log* + +# Editor directories and files +/ui/.idea +/ui/.vscode +/ui/*.suo +/ui/*.ntvs* +/ui/*.njsproj +/ui/*.sln + +################################# +## files in docker directory +################################# +/docker/plugin/tmp_files/ +/docker/ui/dist/ \ No newline at end of file diff --git a/testing-scheduler/docker/build.sh b/testing-scheduler/docker/build.sh new file mode 100644 index 00000000..5ff9dacb --- /dev/null +++ b/testing-scheduler/docker/build.sh @@ -0,0 +1,20 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# get the absolute path of this shell file. +basepath=$(cd `dirname $0`; pwd) + +#build conductor +sh $basepath/plugin/build.sh + +#build server +sh $basepath/server/build.sh + +#build ui +sh $basepath/ui/build.sh \ No newline at end of file diff --git a/testing-scheduler/docker/clean.sh b/testing-scheduler/docker/clean.sh new file mode 100644 index 00000000..b18e4067 --- /dev/null +++ b/testing-scheduler/docker/clean.sh @@ -0,0 +1,32 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +sudo docker rm -f t-scheduler-server \ + t-scheduler-ui \ + conductor_conductor-server_1 \ + conductor_conductor-ui_1 \ + conductor_dynomite_1 \ + conductor_elasticsearch_1 + +sudo docker network rm conductor_default + +sudo docker rmi x-lab/testing-scheduler:server \ + x-lab/testing-scheduler:ui \ + x-lab/conductor:builder \ + conductor:ui \ + conductor:server \ + elasticsearch:2.4 \ + v1r3n/dynomite:latest \ + java:8-jre-alpine \ + python:2.7 \ + node:alpine \ + nginx:latest \ + java:latest \ + +echo "--- Clean Finished ---" \ No newline at end of file diff --git a/testing-scheduler/docker/plugin/Dockerfile b/testing-scheduler/docker/plugin/Dockerfile new file mode 100644 index 00000000..d6297937 --- /dev/null +++ b/testing-scheduler/docker/plugin/Dockerfile @@ -0,0 +1,24 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +FROM java +MAINTAINER x-lab/Leo +RUN useradd -m noroot -s /bin/bash +USER noroot +WORKDIR /home/noroot +ENV BUILD_DIR build_dir +ENV REPO_DIR ${BUILD_DIR}/conductor + +RUN mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR} && \ + git clone http://github.com/Netflix/conductor.git && \ + cd conductor && git checkout v1.10.4 + +RUN cd ${REPO_DIR} && ./gradlew build + +CMD tail -f /dev/null \ No newline at end of file diff --git a/testing-scheduler/docker/plugin/build.sh b/testing-scheduler/docker/plugin/build.sh new file mode 100644 index 00000000..cfcb98d8 --- /dev/null +++ b/testing-scheduler/docker/plugin/build.sh @@ -0,0 +1,28 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# get the absolute path of this shell file. +basepath=$(cd `dirname $0`; pwd) +tmppath=$basepath/tmp_files +docker_tmppath=/home/noroot/build_dir/conductor +group="x-lab" +plugin_image="$group/conductor:builder" +plugin_container="conductor-builder" +#build the gradle project in a temp container. + +mkdir -p $tmppath +docker build -t $plugin_image -f $basepath/Dockerfile $basepath +docker run -d --name $plugin_container $plugin_image +docker cp $plugin_container:$docker_tmppath $tmppath/ +docker rm -f $plugin_container +#docker rmi $plugin_image + +#build the images of conductor. +cd $tmppath/conductor/docker +docker-compose build diff --git a/testing-scheduler/docker/plugin/run.sh b/testing-scheduler/docker/plugin/run.sh new file mode 100644 index 00000000..8021eef5 --- /dev/null +++ b/testing-scheduler/docker/plugin/run.sh @@ -0,0 +1,14 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# get the absolute path of this shell file. +basepath=$(cd `dirname $0`; pwd) +tmppath=$basepath/tmp_files +cd $tmppath/conductor/docker +docker-compose -p conductor up -d \ No newline at end of file diff --git a/testing-scheduler/docker/run.sh b/testing-scheduler/docker/run.sh new file mode 100644 index 00000000..e303dceb --- /dev/null +++ b/testing-scheduler/docker/run.sh @@ -0,0 +1,20 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# get the absolute path of this shell file. +basepath=$(cd `dirname $0`; pwd) + +#run conductor containers +sh $basepath/plugin/run.sh + +#run server +sh $basepath/server/run.sh + +#run ui +sh $basepath/ui/run.sh \ No newline at end of file diff --git a/testing-scheduler/docker/server/Dockerfile b/testing-scheduler/docker/server/Dockerfile new file mode 100644 index 00000000..e04873ea --- /dev/null +++ b/testing-scheduler/docker/server/Dockerfile @@ -0,0 +1,29 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +FROM python:2.7 +MAINTAINER x-lab/Leo +WORKDIR /home/testing-scheduler/server +COPY ./server . + +RUN pip install -r ./python_modules.txt + +ENV CONDUCTOR_DIR /home/testing-scheduler/conductor +RUN mkdir ${CONDUCTOR_DIR} && cd ${CONDUCTOR_DIR} && \ + git clone http://github.com/Netflix/conductor.git && \ + cd conductor && git checkout v1.10.4 +RUN cd ${CONDUCTOR_DIR}/conductor/client/python && \ + python setup.py install + +RUN pip install -U . + +EXPOSE 5310 +EXPOSE 5312 +CMD sh -c 'python /usr/local/lib/python2.7/site-packages/src/rest/router.py & \ + python ./src/rest/test_service_demo.py' diff --git a/testing-scheduler/docker/server/build.sh b/testing-scheduler/docker/server/build.sh new file mode 100644 index 00000000..27f6de33 --- /dev/null +++ b/testing-scheduler/docker/server/build.sh @@ -0,0 +1,20 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# get the absolute path of this shell file. +basepath=$(cd `dirname $0`; pwd) + +# get the root directory of this project +projectpath=$basepath/../.. +group="x-lab" + +# server image name +server_image="$group/testing-scheduler:server" + +docker build -t $server_image -f $basepath/Dockerfile $projectpath \ No newline at end of file diff --git a/testing-scheduler/docker/server/clean.sh b/testing-scheduler/docker/server/clean.sh new file mode 100644 index 00000000..900326be --- /dev/null +++ b/testing-scheduler/docker/server/clean.sh @@ -0,0 +1,17 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +group="x-lab" +# server image name +server_image="$group/testing-scheduler:server" +# server container name +server_container="t-scheduler-server" + +docker rm -f $server_container +docker rmi $server_image \ No newline at end of file diff --git a/testing-scheduler/docker/server/run.sh b/testing-scheduler/docker/server/run.sh new file mode 100644 index 00000000..d486f869 --- /dev/null +++ b/testing-scheduler/docker/server/run.sh @@ -0,0 +1,17 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +conductor_network='conductor_default' +group="x-lab" +# server image name +server_image="$group/testing-scheduler:server" +# server container name +server_container="t-scheduler-server" + +docker run -d --rm -p 5310:5310 -p 5312:5312 --net=$conductor_network --name $server_container $server_image \ No newline at end of file diff --git a/testing-scheduler/docker/ui/Dockerfile b/testing-scheduler/docker/ui/Dockerfile new file mode 100644 index 00000000..212394a8 --- /dev/null +++ b/testing-scheduler/docker/ui/Dockerfile @@ -0,0 +1,16 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +FROM nginx +MAINTAINER x-lab/Leo + +RUN rm /etc/nginx/conf.d/default.conf + +ADD ./ui/config/default.conf /etc/nginx/conf.d/ +COPY ./docker/ui/dist/ /usr/share/nginx/html/ \ No newline at end of file diff --git a/testing-scheduler/docker/ui/build.sh b/testing-scheduler/docker/ui/build.sh new file mode 100644 index 00000000..52286a8a --- /dev/null +++ b/testing-scheduler/docker/ui/build.sh @@ -0,0 +1,22 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# get the absolute path of this shell file. +basepath=$(cd `dirname $0`; pwd) +# get the root directory of this project +projectpath=$basepath/../.. +group="x-lab" +# ui image name +ui_image="$group/testing-scheduler:ui" + +# build the ui-project and generate the dist package. +sh $basepath/pre-builder/build.sh +sh $basepath/pre-builder/run.sh + +docker build -t $ui_image -f $basepath/Dockerfile $projectpath \ No newline at end of file diff --git a/testing-scheduler/docker/ui/clean.sh b/testing-scheduler/docker/ui/clean.sh new file mode 100644 index 00000000..5ab4e219 --- /dev/null +++ b/testing-scheduler/docker/ui/clean.sh @@ -0,0 +1,19 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +group="x-lab" +# ui image name +ui_image="$group/testing-scheduler:ui" +# ui container name +ui_container="t-scheduler-ui" +docker rm -f $ui_container +docker rmi $ui_image +# get the absolute path of this shell file. +basepath=$(cd `dirname $0`; pwd) +rm -rf $basepath/dist \ No newline at end of file diff --git a/testing-scheduler/docker/ui/pre-builder/Dockerfile b/testing-scheduler/docker/ui/pre-builder/Dockerfile new file mode 100644 index 00000000..f69667f4 --- /dev/null +++ b/testing-scheduler/docker/ui/pre-builder/Dockerfile @@ -0,0 +1,18 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +FROM node:alpine +MAINTAINER x-lab/Leo +WORKDIR /home/testing-scheduler/ui +COPY ./ui . + +RUN npm install +RUN npm run build + +CMD tail -f /dev/null \ No newline at end of file diff --git a/testing-scheduler/docker/ui/pre-builder/build.sh b/testing-scheduler/docker/ui/pre-builder/build.sh new file mode 100644 index 00000000..7f227ed2 --- /dev/null +++ b/testing-scheduler/docker/ui/pre-builder/build.sh @@ -0,0 +1,17 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# get the absolute path of this shell file. +basepath=$(cd `dirname $0`; pwd) +# get the root directory of this project +projectpath=$basepath/../../.. +group="x-lab" +# ui image name +ui_image="$group/testing-scheduler:ui-builder" +docker build -t $ui_image -f $basepath/Dockerfile $projectpath \ No newline at end of file diff --git a/testing-scheduler/docker/ui/pre-builder/run.sh b/testing-scheduler/docker/ui/pre-builder/run.sh new file mode 100644 index 00000000..a16f1c54 --- /dev/null +++ b/testing-scheduler/docker/ui/pre-builder/run.sh @@ -0,0 +1,21 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +group="x-lab" +# ui image name +ui_image="$group/testing-scheduler:ui-builder" +# ui container name +ui_container='t-scheduler-ui-builder' +# get the absolute path of this shell file. +basepath=$(cd `dirname $0`; pwd) +docker run -d --name $ui_container $ui_image + +docker cp $ui_container:/home/testing-scheduler/ui/dist $basepath/../ +docker rm -f $ui_container +docker rmi $ui_image \ No newline at end of file diff --git a/testing-scheduler/docker/ui/run.sh b/testing-scheduler/docker/ui/run.sh new file mode 100644 index 00000000..12f4bae0 --- /dev/null +++ b/testing-scheduler/docker/ui/run.sh @@ -0,0 +1,17 @@ +############################################################################## +# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +conductor_network='conductor_default' +group="x-lab" +# ui image name +ui_image="$group/testing-scheduler:ui" +# ui container name +ui_container="t-scheduler-ui" + +docker run -d --rm -p 5311:5311 --net=$conductor_network --name $ui_container $ui_image \ No newline at end of file -- cgit 1.2.3-korg