78 lines
2.2 KiB
Bash
Executable File
78 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
# Copyright (c) 2018-2018
|
|
# Data Intensive Applications and Systems Labaratory (DIAS)
|
|
# Ecole Polytechnique Federale de Lausanne
|
|
#
|
|
# All Rights Reserved.
|
|
#
|
|
# Permission to use, copy, modify and distribute this software and its
|
|
# documentation is hereby granted, provided that both the copyright notice
|
|
# and this permission notice appear in all copies of the software, derivative
|
|
# works or modified versions, and any portions thereof, and that both notices
|
|
# appear in supporting documentation.
|
|
#
|
|
# This code is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
# A PARTICULAR PURPOSE. THE AUTHORS AND ECOLE POLYTECHNIQUE FEDERALE DE LAUSANNE
|
|
# DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE
|
|
# USE OF THIS SOFTWARE.
|
|
|
|
# Import settings
|
|
. ./settings.sh
|
|
|
|
# 1. Create all the DB at once
|
|
echo "Create databases..."
|
|
db_id=$(docker run --rm -d \
|
|
-e POSTGRES_USER="${DB_USER_ADMIN}" \
|
|
-e POSTGRES_PASSWORD="${DB_PASSWORD_ADMIN}" \
|
|
-e PGDATA="/data/pgdata" \
|
|
-v ${DB_DATA}:/data:rw \
|
|
-v ${DB_DATASETS}:/datasets:ro \
|
|
--network=${MIP_PRIVATE_NETWORK} \
|
|
--name ${DB_HOST} \
|
|
${DB_IMAGE}${DB_VERSION}
|
|
)
|
|
|
|
db_list=""
|
|
for f in ${DB_CREATE_LIST}
|
|
do
|
|
eval "t=\"\
|
|
-e DB${f}=\${DB_NAME${f}} \
|
|
-e USER${f}=\${DB_USER${f}} \
|
|
-e PASSWORD${f}=\${DB_PASSWORD${f}}\""
|
|
db_list="$db_list $t"
|
|
done
|
|
|
|
sleep 5
|
|
|
|
docker run --rm \
|
|
-e DB_HOST="${DB_HOST}" \
|
|
-e DB_PORT="${DB_PORT}" \
|
|
-e DB_ADMIN_USER="${DB_USER_ADMIN}" \
|
|
-e DB_ADMIN_PASSWORD="${DB_PASSWORD_ADMIN}" \
|
|
${db_list} \
|
|
--network=${MIP_PRIVATE_NETWORK} \
|
|
${DB_CREATE_IMAGE}${DB_CREATE_VERSION}
|
|
|
|
# 2. Pre-populate the DBs which needs it
|
|
for f in ${DB_SETUP_LIST}
|
|
do
|
|
eval "img=\${${f}_IMAGE}"
|
|
eval "version=\${${f}_VERSION}"
|
|
eval "db=\${${f}_DB}"
|
|
|
|
echo
|
|
echo "Executing ${img}${version}"
|
|
|
|
docker run --rm \
|
|
-e FLYWAY_HOST="${DB_HOST}" \
|
|
-e FLYWAY_PORT="${DB_PORT}" \
|
|
-e FLYWAY_USER="${DB_USER_ADMIN}" \
|
|
-e FLYWAY_PASSWORD="${DB_PASSWORD_ADMIN}" \
|
|
-e FLYWAY_DATABASE_NAME="${db}" \
|
|
--network=${MIP_PRIVATE_NETWORK} \
|
|
${img}${version}
|
|
done
|
|
|
|
docker stop ${db_id}
|