TSK-1471: now using docker-compose for all database containers

This commit is contained in:
Mustapha Zorgati 2020-11-18 12:33:31 +01:00
parent c17a15d1ea
commit 1aa4cd69fe
7 changed files with 76 additions and 65 deletions

View File

@ -2,8 +2,12 @@ version: '3'
services:
taskana-postgres_10:
build: .
container_name: taskana-postgres_10
ports:
- 50102:5432
- 5102:5432
environment:
- POSTGRES_PASSWORD=postgres
- POSTGRES_PASSWORD=postgres
taskana-db2_11-1:
image: taskana/db2:11.1
ports:
- 5101:50000
command: -d

View File

@ -5,7 +5,7 @@ SET PROP_FILE=%HOMEPATH%\taskanaUnitTest.properties
:MENU
ECHO.
ECHO -----------------------------------------------------
ECHO PRESS a number to select your task - anthing to EXIT.
ECHO PRESS a number to select your task - anything to EXIT.
ECHO -----------------------------------------------------
ECHO.
ECHO 1 - Start DB2 11.1
@ -29,24 +29,11 @@ SET PROP_FILE=%HOMEPATH%\taskanaUnitTest.properties
:START_DB2_11_1
ECHO ---
docker ps -aq -f name=^/taskana-db2_11_1$ -f status=running > %TEMP%\temp
SET /P CONTAINER_RUNNING=< %TEMP%\temp
docker ps -aq -f name=^/taskana-db2_11_1$ > %TEMP%\temp
SET /P CONTAINER_EXISTS=< %TEMP%\temp
del %TEMP%\temp
IF DEFINED CONTAINER_EXISTS (
ECHO docker start taskana-db2_11_1
docker start taskana-db2_11_1
)
IF NOT DEFINED CONTAINER_EXISTS (
ECHO docker run -d -p 50101:50000 --name taskana-db2_11_1 taskana/db2:11.1 -d
docker run -d -p 50101:50000 --name taskana-db2_11_1 taskana/db2:11.1 -d
)
ECHO docker-compose -f %~dp0/docker-compose.yml up -d taskana-db2_11-1
docker-compose -f %~dp0/docker-compose.yml up -d taskana-db2_11-1
ECHO jdbcDriver=com.ibm.db2.jcc.DB2Driver> %PROP_FILE%
ECHO jdbcUrl=jdbc:db2://localhost:50101/tskdb>> %PROP_FILE%
ECHO jdbcUrl=jdbc:db2://localhost:5101/tskdb>> %PROP_FILE%
ECHO dbUserName=db2inst1>> %PROP_FILE%
ECHO dbPassword=db2inst1-pwd>> %PROP_FILE%
ECHO schemaName=taskana>> %PROP_FILE%
@ -55,17 +42,18 @@ SET PROP_FILE=%HOMEPATH%\taskanaUnitTest.properties
:STOP_DB2_11_1
ECHO ---
ECHO docker stop taskana-db2_11_1
docker stop taskana-db2_11_1
ECHO docker-compose -f %~dp0/docker-compose.yml rm -f -s -v taskana-db2_11-1
docker-compose -f %~dp0/docker-compose.yml rm -f -s -v taskana-db2_11-1
ECHO ---
GOTO MENU
GOTO REMOVE_PROP
:START_POSTGRES_10
ECHO docker-compose -f %~dp0/docker-compose.yml up -d
docker-compose -f %~dp0/docker-compose.yml up -d
ECHO ---
ECHO docker-compose -f %~dp0/docker-compose.yml up -d taskana-postgres_10
docker-compose -f %~dp0/docker-compose.yml up -d taskana-postgres_10
ECHO jdbcDriver=org.postgresql.Driver> %PROP_FILE%
ECHO jdbcUrl=jdbc:postgresql://localhost:50102/postgres>> %PROP_FILE%
ECHO jdbcUrl=jdbc:postgresql://localhost:5102/postgres>> %PROP_FILE%
ECHO dbUserName=postgres>> %PROP_FILE%
ECHO dbPassword=postgres>> %PROP_FILE%
ECHO schemaName=taskana>> %PROP_FILE%
@ -75,18 +63,17 @@ SET PROP_FILE=%HOMEPATH%\taskanaUnitTest.properties
:STOP_POSTGRES_10
ECHO ---
ECHO docker stop taskana-postgres_10
docker stop taskana-postgres_10
ECHO docker-compose -f %~dp0/docker-compose.yml rm -f -s -v taskana-postgres_10
docker-compose -f %~dp0/docker-compose.yml rm -f -s -v taskana-postgres_10
ECHO ---
GOTO MENU
GOTO REMOVE_PROP
:STOP_ALL
ECHO ---
ECHO docker stop taskana-db2_11_1
docker stop taskana-db2_11_1
ECHO docker stop taskana-postgres_10
docker stop takana-postgres_10
ECHO docker-compose -f %~dp0/docker-compose.yml down -v
docker-compose -f %~dp0/docker-compose.yml down -v
ECHO ---
GOTO MENU
GOTO REMOVE_PROP
:REMOVE_PROP
ECHO ---

View File

@ -2,13 +2,18 @@
set -e #fail fast
#H Usage:
#H prepare_db.sh -h | prepare_db.sh --help
#H %FILE% -h | %FILE% --help
#H
#H prints this help and exits
#H
#H prepare_db.sh <database>
#H %FILE% <database>
#H
#H downloads and starts docker image for taskana unit tests
#H downloads and starts docker image for taskana unit tests.
#H
#H %FILE% stop [database]
#H
#H stops the database and removes 'taskanaUnitTest.properties'.
#H If no database was provided all databases are stopped.
#H
#H database:
#H - H2
@ -17,43 +22,58 @@ set -e #fail fast
# Arguments:
# $1: exit code
function helpAndExit() {
cat "$0" | grep "^#H" | cut -c4-
cat "$0" | grep "^#H" | cut -c4- | sed -e "s/%FILE%/$(basename "$0")/g"
exit "$1"
}
# This function maps the database parameter (for this file) to the docker-compose service name.
# Arguments:
# $1: the database which should be mapped
function mapDBToDockerComposeServiceName() {
[[ -z "$1" || "$1" == "H2" ]] && return
case "$1" in
DB2_11_1)
echo "taskana-db2_11-1"
;;
POSTGRES_10)
echo "taskana-postgres_10"
;;
*)
echo "unknown database '$1'" >&2 && exit 1
esac
}
function main() {
[[ $# -eq 0 || "$1" == '-h' || "$1" == '--help' ]] && helpAndExit 0
propFile="$HOME/taskanaUnitTest.properties"
scriptDir=`dirname $0`
scriptDir=$(dirname "$0")
case "$1" in
H2)
if [[ -f "$propFile" ]]; then
rm "$propFile"
fi
[[ -f "$propFile" ]] && rm "$propFile"
;;
DB2_11_1)
if [[ -z $(docker ps -aq -f name=^/taskana-db2_11_1$ -f status=running) ]]; then
if [[ -z $(docker ps -aq -f name=^/taskana-db2_11_1$) ]]; then
docker run -d -p 50101:50000 --name taskana-db2_11_1 taskana/db2:11.1 -d
else
docker start taskana-db2_11_1
fi
fi
echo 'jdbcDriver=com.ibm.db2.jcc.DB2Driver' >$propFile
echo 'jdbcUrl=jdbc:db2://localhost:50101/tskdb' >>$propFile
echo 'dbUserName=db2inst1' >>$propFile
echo 'dbPassword=db2inst1-pwd' >>$propFile
echo 'schemaName=TASKANA' >>$propFile
docker-compose -f $scriptDir/docker-compose.yml up -d $(mapDBToDockerComposeServiceName "$1")
echo 'jdbcDriver=com.ibm.db2.jcc.DB2Driver' > $propFile
echo 'jdbcUrl=jdbc:db2://localhost:5101/tskdb' >> $propFile
echo 'dbUserName=db2inst1' >> $propFile
echo 'dbPassword=db2inst1-pwd' >> $propFile
echo 'schemaName=TASKANA' >> $propFile
;;
POSTGRES_10)
docker-compose -f $scriptDir/docker-compose.yml up -d
docker-compose -f $scriptDir/docker-compose.yml up -d $(mapDBToDockerComposeServiceName "$1")
echo 'jdbcDriver=org.postgresql.Driver' >$propFile
echo 'jdbcUrl=jdbc:postgresql://localhost:50102/postgres' >>$propFile
echo 'dbUserName=postgres' >>$propFile
echo 'dbPassword=postgres' >>$propFile
echo 'schemaName=taskana' >>$propFile
echo 'jdbcDriver=org.postgresql.Driver' > $propFile
echo 'jdbcUrl=jdbc:postgresql://localhost:5102/postgres' >> $propFile
echo 'dbUserName=postgres' >> $propFile
echo 'dbPassword=postgres' >> $propFile
echo 'schemaName=taskana' >> $propFile
;;
stop)
docker-compose -f $scriptDir/docker-compose.yml rm -f -s -v $(mapDBToDockerComposeServiceName "$2")
[[ -f "$propFile" ]] && rm "$propFile"
;;
*)
echo "unknown database '$1'" >&2

View File

@ -17,7 +17,7 @@ taskana.schemaName=TASKANA
######## db2 configuration ########
spring.datasource.driverClassName=com.ibm.db2.jcc.DB2Driver
spring.datasource.url=jdbc:db2://localhost:50000/tskdb
spring.datasource.url=jdbc:db2://localhost:5101/tskdb
spring.datasource.username=db2inst1
spring.datasource.password=db2inst1-pwd

View File

@ -15,13 +15,13 @@ taskana.schemaName=taskana
######## db2 configuration ########
########spring.datasource.driverClassName=com.ibm.db2.jcc.DB2Driver
########spring.datasource.url=jdbc:db2://localhost:50000/tskdb
########spring.datasource.url=jdbc:db2://localhost:5101/tskdb
########spring.datasource.username=db2inst1
########spring.datasource.password=db2inst1-pwd
########taskana.schemaName=TASKANA
######## Postgres configuration ########
spring.datasource.url=jdbc:postgresql://localhost/postgres
spring.datasource.url=jdbc:postgresql://localhost:5102/postgres
spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.username=postgres
spring.datasource.password=postgres

View File

@ -17,12 +17,12 @@ taskana.schemaName=TASKANA
######## db2 configuration ########
########spring.datasource.driverClassName=com.ibm.db2.jcc.DB2Driver
########spring.datasource.url=jdbc:db2://localhost:50000/tskdb
########spring.datasource.url=jdbc:db2://localhost:5101/tskdb
########spring.datasource.username=db2inst1
########spring.datasource.password=db2inst1-pwd
######## Postgres configuration ########
########spring.datasource.url=jdbc:postgresql://localhost/taskana
########spring.datasource.url=jdbc:postgresql://localhost:5102/taskana
########spring.datasource.driverClassName=org.postgresql.Driver
########spring.datasource.username=postgres
########spring.datasource.password=1234

View File

@ -255,7 +255,7 @@
jndi-name="java:/TaskanaDS/PostgreSQL"
pool-name="TASKANA PostgreSQL Datasource"
enabled="true" use-ccm="false">
<connection-url>jdbc:postgresql://localhost:50102/postgres
<connection-url>jdbc:postgresql://localhost:5102/postgres
</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<driver>postgresql</driver>