blob: 3f797876f47376695216949a81bfd2df1ed9021b [file] [log] [blame]
tierno7d782ef2019-10-04 12:56:31 +00001#!/bin/bash
2
3##
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
15#
16# For those usages not covered by the Apache License, Version 2.0 please
17# contact with: nfvlabs@tid.es
18##
19
20# Generates the debian packages; and then generates a docker image base on Dockerfile-devops and update a
21# running docker stack with the generated image
22
23HERE=$(dirname $(readlink -f ${BASH_SOURCE[0]}))
24export RO_BASE=$(dirname $HERE)
25
26# clean
27docker rm -f ro_pkg 2>/dev/null && echo docker ro_pkg removed
28rm -rf $HERE/temp/*
29mkdir -p $HERE/temp
30
31echo -e "\n\n[STAGE 1] Builind dockerfile userd for the package generation"
32docker build $RO_BASE -f $RO_BASE/Dockerfile -t opensourcemano/ro_pkg
33sleep 2
34
35echo "[STAGE 1.1] Generting packages inside docker ro_pkg"
36docker run -d --name ro_pkg opensourcemano/ro_pkg bash -c 'sleep 3600'
37docker cp $RO_BASE ro_pkg:/RO
38docker exec ro_pkg bash -c 'cd /RO; ./devops-stages/stage-build.sh'
39deb_files=`docker exec ro_pkg bash -c 'ls /RO/deb_dist/'`
40[ -z "$deb_files" ] && echo "No packages generated" >&2 && exit 1
41echo $deb_files
42
43echo -e "\n\n[STAGE 1.2] Print package information and copy to '$HERE/temp/'"
44# print package information and copy to "$HERE/temp/"
45for deb_file in $deb_files ; do
46 echo; echo; echo
47 echo $deb_file info:
48 echo "==========================="
49 docker cp ro_pkg:/RO/deb_dist/$deb_file $HERE/temp/
50 dpkg -I $HERE/temp/$(basename $deb_file)
51done
52
53# docker rm -f ro_pkg
54echo -e "\n\n[STAGE 2] Building docker image opensourcemano/ro:py3_devops based on debian packages"
55docker build $HERE -f $HERE/Dockerfile-devops -t opensourcemano/ro:py3_devops ||
56 ! echo "error generating devops dockerfile" >&2 || exit 1
57sleep 2
58# docker run -d --name ro_devops opensourcemano/ro:py3_devops
59# docker run -ti exec ro_devops ro tenant-list || ! echo "Cannot exec ro client to get server tenants" >&2 || exit 1
60
61echo -e "\n\n[STAGE 3] Update service osm_ro with generated docker image"
62docker service update osm_ro --force --image opensourcemano/ro:py3_devops
63sleep 2
64docker container prune -f
65docker service logs osm_ro