summaryrefslogtreecommitdiffstats
path: root/testing-scheduler
diff options
context:
space:
mode:
authorLeoQi <QibinZheng2014@tongji.edu.cn>2018-07-20 03:25:40 +0800
committerLeoQi <QibinZheng2014@tongji.edu.cn>2018-08-31 16:53:38 +0800
commitd07a98da45a684a605669f1c902d9f28f5d21ecf (patch)
tree4735a2f5728b7980e5e8f8243f019313492e04ad /testing-scheduler
parentad12a6561be8c67f6da09c38c4e1c0e88eb9a6de (diff)
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 <QibinZheng2014@tongji.edu.cn>
Diffstat (limited to 'testing-scheduler')
-rw-r--r--testing-scheduler/.gitignore33
-rw-r--r--testing-scheduler/docker/build.sh20
-rw-r--r--testing-scheduler/docker/clean.sh32
-rw-r--r--testing-scheduler/docker/plugin/Dockerfile24
-rw-r--r--testing-scheduler/docker/plugin/build.sh28
-rw-r--r--testing-scheduler/docker/plugin/run.sh14
-rw-r--r--testing-scheduler/docker/run.sh20
-rw-r--r--testing-scheduler/docker/server/Dockerfile29
-rw-r--r--testing-scheduler/docker/server/build.sh20
-rw-r--r--testing-scheduler/docker/server/clean.sh17
-rw-r--r--testing-scheduler/docker/server/run.sh17
-rw-r--r--testing-scheduler/docker/ui/Dockerfile16
-rw-r--r--testing-scheduler/docker/ui/build.sh22
-rw-r--r--testing-scheduler/docker/ui/clean.sh19
-rw-r--r--testing-scheduler/docker/ui/pre-builder/Dockerfile18
-rw-r--r--testing-scheduler/docker/ui/pre-builder/build.sh17
-rw-r--r--testing-scheduler/docker/ui/pre-builder/run.sh21
-rw-r--r--testing-scheduler/docker/ui/run.sh17
18 files changed, 384 insertions, 0 deletions
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