diff --git a/smp-docker/compose/tomcat-mysql/docker-compose.yml b/smp-docker/compose/tomcat-mysql/docker-compose.yml deleted file mode 100644 index 1aefbf78cd3a33d952c9985f9d912cb1795c47e2..0000000000000000000000000000000000000000 --- a/smp-docker/compose/tomcat-mysql/docker-compose.yml +++ /dev/null @@ -1,13 +0,0 @@ -version: "3.0" -services: - tomcat-mysql: - image: smp-tomcat-mysql:${SMP_VERSION} - container_name: smp-tomcat-mysql - volumes: - - ./properties/db-scripts:/tmp/custom-database-scripts/ # init script. - ports: - - 3907:3306 - - 8981:8080 - - 6901:6901 - - diff --git a/smp-docker/compose/tomcat-mysql/runCompose.sh b/smp-docker/compose/tomcat-mysql/runCompose.sh deleted file mode 100755 index 2eb599f17b4211c036785fb58e491d4e3fbd749b..0000000000000000000000000000000000000000 --- a/smp-docker/compose/tomcat-mysql/runCompose.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash - -WORKING_DIR="$(dirname $0)" -SML_INIT_DATABASE="../../../smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb.ddl" -#SML_INIT_DATABASE_DATA="../../../smp-soapui-tests/groovy/mysql-4.1_integration_test_data.sql" -SML_INIT_DATABASE_DATA="../../../smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb-data.sql" -# soap ui data -PREFIX="smp-tomcat-mysql" -SMP_VERSION= - -# clear volume and containers - to run restart from strach - - -# READ argumnets -while getopts i:v: option -do - case "${option}" - in - i) SML_INIT_DATABASE_DATA=${OPTARG};; - v) SMP_VERSION=${OPTARG};; - esac -done - - -if [ -z "${SMP_VERSION}" ] -then - # get version from POM file - - SMP_VERSION="$(mvn org.apache.maven.plugins:maven-help-plugin:3.1.0:evaluate -Dexpression=project.version -q -DforceStdout)" - -fi - -echo "SMP version: $SMP_VERSION" -echo "Working Directory: ${WORKING_DIR}" -cd "$WORKING_DIR" - - - -# check if property folder exists if not create it -if [ ! -d "./properties/db-scripts/" ] -then - mkdir -p "./properties/db-scripts/" -fi - -# create database init script from l -cp "${SML_INIT_DATABASE}" ./properties/db-scripts/mysql5innodb.ddl -cp "${SML_INIT_DATABASE_DATA}" ./properties/db-scripts/mysql5innodb-data.sql - - - -function clearOldContainers { - echo "Clear containers and volumes" - docker-compose -p "${PREFIX}" rm -s -f -v - echo "Clear containers and volumes" -} - - -# -# Always delete shared-status-folder else weblogic will start to quick! -# because statuses are sync over shared-status-folder folders and it could contain status from previous run. - -export SMP_VERSION="${SMP_VERSION}" -echo "Clear old containser" -clearOldContainers -# start " -echo "Start compose" -docker-compose -p ${PREFIX} up -d --force-recreate - -# wait until service is up -for i in `seq 100`; do timeout 1 bash -c ' curl --silent --fail http://localhost:8981/smp/'; if [ $? -eq 0 ] ; then break;fi; echo "$i. Wait for tomcat to start!"; sleep 5; done; - diff --git a/smp-docker/compose/tomcat-mysql/stopClearCompose.sh b/smp-docker/compose/tomcat-mysql/stopClearCompose.sh deleted file mode 100755 index ca756d03882b899b9cd970aaf629cd822a39faf5..0000000000000000000000000000000000000000 --- a/smp-docker/compose/tomcat-mysql/stopClearCompose.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -WORKING_DIR="$(dirname $0)" -echo "Working Directory: ${WORKING_DIR}" -cd "$WORKING_DIR" - -PREFIX="smp-tomcat-mysql" - -# clear volume and containers - to run restart from scratch -function clearOldContainers { - echo "Save docker log to docker-file" - docker logs ${PREFIX} > smp-container.log 2>&1 - echo "Clear containers and volumes" - docker-compose -p "${PREFIX}" rm -s -f -v -} - - -# stop and clear -clearOldContainers - diff --git a/smp-docker/images/build-docker-images.sh b/smp-docker/images/build-docker-images.sh index 842da096c84bbf3cd65a2ea64699aeab9e6a316a..174e9bdbd48b474d8929cd0b8ed11354e69da8e2 100755 --- a/smp-docker/images/build-docker-images.sh +++ b/smp-docker/images/build-docker-images.sh @@ -123,9 +123,7 @@ validateAndPrepareArtefacts() { cp "${ORACLE_ARTEFACTS}/${WEBLOGIC_122_QUICK_FILE}" ./oracle/weblogic-12.2.1.3/ fi - if [[ ! -d "./tomcat-mysql/artefacts/" ]]; then - mkdir -p "./tomcat-mysql/artefacts/" - fi + if [[ ! -d "./tomcat-mysql-smp-sml/artefacts/" ]]; then mkdir -p "./tomcat-mysql-smp-sml/artefacts" @@ -140,7 +138,6 @@ validateAndPrepareArtefacts() { # for weblogic cp "${SMP_ARTEFACTS}/smp.war" ./weblogic-12.2.1.3-smp/smp.war # for mysql tomcat - cp "${SMP_ARTEFACTS}/smp.war" ./tomcat-mysql/artefacts/smp.war cp "${SMP_ARTEFACTS}/smp.war" ./tomcat-mysql-smp-sml/artefacts/smp.war fi @@ -151,7 +148,6 @@ validateAndPrepareArtefacts() { else # copy artefact to docker build folder cp "${SMP_ARTEFACTS}/smp-${SMP_VERSION}-setup.zip" ./weblogic-12.2.1.3-smp/smp-setup.zip - cp "${SMP_ARTEFACTS}/smp-${SMP_VERSION}-setup.zip" ./tomcat-mysql/artefacts/smp-setup.zip cp "${SMP_ARTEFACTS}/smp-${SMP_VERSION}-setup.zip" ./tomcat-mysql-smp-sml/artefacts/smp-setup.zip fi @@ -184,10 +180,6 @@ buildImages() { # build SMP deployment. docker build -t "smp-weblogic-122:${SMP_VERSION}" ./weblogic-12.2.1.3-smp/ --build-arg SMP_VERSION="$SMP_VERSION" - - # build tomcat mysql image deployment. - docker build -t "smp-tomcat-mysql:${SMP_VERSION}" ./tomcat-mysql/ --build-arg SMP_VERSION=${SMP_VERSION} - # build tomcat mysql image deployment. docker build -t "smp-sml-tomcat-mysql:${SMP_VERSION}" ./tomcat-mysql-smp-sml/ --build-arg SMP_VERSION=${SMP_VERSION} @@ -199,7 +191,6 @@ function pushImageToDockerhub() { # login to docker docker login --username="${DOCKER_USER}" --password="${DOCKER_PASSWORD}" "${DOCKER_REGISTRY_HOST}" # push images - pushImageIfExisting "smp-tomcat-mysql:${SMP_VERSION}" pushImageIfExisting "smp-sml-tomcat-mysql:${SMP_VERSION}" pushImageIfExisting "smp-weblogic-122:${SMP_VERSION}" pushImageIfExisting "smp-oradb-11.2.0.2-xe:${SMP_VERSION}" @@ -229,7 +220,6 @@ cleanArtefacts() { rm "./weblogic-12.2.1.3-smp/smp-setup.zip" # clear also the tomcat/mysql image - rm -rf "./tomcat-mysql/artefacts/*.*" rm -rf "./tomcat-mysql-smp-sml/artefacts/*.*" if [[ "V$SMP_ARTEFACTS_CLEAR" == "Vtrue" ]]; then diff --git a/smp-docker/images/tomcat-mysql/Dockerfile b/smp-docker/images/tomcat-mysql/Dockerfile deleted file mode 100755 index 6aa32f491f43530e32d0cd7c2b0c7bbd291ac47e..0000000000000000000000000000000000000000 --- a/smp-docker/images/tomcat-mysql/Dockerfile +++ /dev/null @@ -1,80 +0,0 @@ -FROM ubuntu:18.04 -MAINTAINER Joze Rihtarsic - -ARG SMP_VERSION -# Set the SMP_VERSION env variable \ -ENV SMP_HOME=/opt/smp \ - MYSQL_DRV_VERSION=5.1.46 \ - MYSQL_DRV_SHA1=9a3e63b387e376364211e96827bc27db8d7a92e9 \ - TOMCAT_MAJOR=8 \ - TOMCAT_VERSION=8.5.73 \ - TOMCAT_SHA512=bc39e4545c779326803bc2574592d72dfea1b56e4cb95d7ac5264c1b91f3da8b1b94f53c53390d1c8348ebe1dad2c10719cc2746b179e1085719d964aa60a779 \ - DB_SCHEMA=smp \ - DB_USER=smp \ - DB_USER_PASSWORD=smp \ - MYSQL_ROOT_PASSWORD=root - -EXPOSE 3306 8080 6901 -# Exposing ports used in entrypoint.sh .. -# - 3306 Mysql port -# - 6901 JaCoCo port -# - 8080 Tomcat port - - -ENV JACOCO_VERSION 0.8.4 -ENV LANG en_US.utf8 -VOLUME ["/smp/data"] - -# install utils, java, mysql \ -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - mysql-server \ - openjdk-8-jdk \ - locales\ - curl \ - unzip \ - vim \ - squid \ - apache2-utils \ - && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 \ -# set user - && addgroup mysql mysql \ -# download SMP, SMP setup, tomcat mysql driver - && mkdir -p $SMP_HOME \ - && cd $SMP_HOME \ - && curl -O https://repo1.maven.org/maven2/mysql/mysql-connector-java/$MYSQL_DRV_VERSION/mysql-connector-java-$MYSQL_DRV_VERSION.jar \ - && sha1sum mysql-connector-java-$MYSQL_DRV_VERSION.jar | grep $MYSQL_DRV_SHA1 \ - && curl -o tomcat.zip "https://archive.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.zip" \ - && sha512sum tomcat.zip | grep $TOMCAT_SHA512 \ - && unzip tomcat.zip \ - && mv mysql-connector-java-$MYSQL_DRV_VERSION.jar $SMP_HOME/apache-tomcat-$TOMCAT_VERSION/lib/ \ - && rm tomcat.zip \ - && mkdir -p $SMP_HOME/apache-tomcat-$TOMCAT_VERSION/smp/conf/ \ - && echo "export CLASSPATH=$SMP_HOME/apache-tomcat-$TOMCAT_VERSION/smp/conf" > $SMP_HOME/apache-tomcat-$TOMCAT_VERSION/bin/setenv.sh \ - && sed -i -e "s/<\/Context>/<Resource name=\"jdbc\/eDeliverySmpDs\" auth=\"Container\" type=\"javax.sql.DataSource\" maxTotal=\"100\" maxIdle=\"30\" maxWaitMillis=\"10000\" username=\"$DB_USER\" password=\"$DB_USER\" driverClassName=\"com.mysql.jdbc.Driver\" url=\"jdbc:mysql:\/\/localhost:3306\/$DB_SCHEMA?useSSL=false\&characterEncoding=UTF-8\&useUnicode=true\"\/><\/Context>/g" "$SMP_HOME/apache-tomcat-$TOMCAT_VERSION/conf/context.xml" \ - && sed -i -e "s/<Connector /<Connector URIEncoding=\"UTF-8\" /g" "$SMP_HOME/apache-tomcat-$TOMCAT_VERSION/conf/server.xml" \ - && echo "datasource.jndi=java:comp/env/jdbc/eDeliverySmpDs" > $SMP_HOME/apache-tomcat-$TOMCAT_VERSION/smp/conf/smp.config.properties \ - && echo "\nAdd init parameters" >> $SMP_HOME/apache-tomcat-$TOMCAT_VERSION/smp/conf/smp.config.properties \ - && echo "\nauthentication.blueCoat.enabled=true" >> $SMP_HOME/apache-tomcat-$TOMCAT_VERSION/smp/conf/smp.config.properties \ - && echo "\nauthentication.blueCoat.enabled=true" >> $SMP_HOME/apache-tomcat-$TOMCAT_VERSION/smp/conf/smp.config.properties \ - && echo "\nsmp.truststore.password={DEC}{test123}" >> $SMP_HOME/apache-tomcat-$TOMCAT_VERSION/smp/conf/smp.config.properties \ - && echo "\nsmp.keystore.password={DEC}{test123}" >> $SMP_HOME/apache-tomcat-$TOMCAT_VERSION/smp/conf/smp.config.properties \ - && echo "\nsmp.property.refresh.cronJobExpression=0 */2 * * * *" >> $SMP_HOME/apache-tomcat-$TOMCAT_VERSION/smp/conf/smp.config.properties \ - && echo "\nencodedSlashesAllowedInUrl=true" >> $SMP_HOME/apache-tomcat-$TOMCAT_VERSION/smp/conf/smp.config.properties \ - && sed -i -e "s/127.0.0.1/0.0.0.0/g" /etc/mysql/mysql.conf.d/mysqld.cnf \ - && mkdir /opt/jacoco \ - && curl -o /opt/jacoco/jacoco-agent.jar https://repo1.maven.org/maven2/org/jacoco/org.jacoco.agent/$JACOCO_VERSION/org.jacoco.agent-$JACOCO_VERSION-runtime.jar - -ADD ./artefacts /tmp/artefacts -COPY ./entrypoint.sh /sbin/entrypoint.sh - -RUN unzip /tmp/artefacts/smp-setup.zip -d /tmp/ \ - && mv /tmp/smp-$SMP_VERSION/* /tmp/artefacts/ \ - && rm -rf /tmp/smp-$SMP_VERSION \ - && mv /tmp/artefacts/smp.war $SMP_HOME/apache-tomcat-$TOMCAT_VERSION/webapps/ \ - && chmod u+x /sbin/entrypoint.sh - - -ENTRYPOINT ["/sbin/entrypoint.sh"] - diff --git a/smp-docker/images/tomcat-mysql/README.md b/smp-docker/images/tomcat-mysql/README.md deleted file mode 100755 index 8ee7237977bffb5ce0e75d59d7faca53f699d340..0000000000000000000000000000000000000000 --- a/smp-docker/images/tomcat-mysql/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# Experiamental SMP docker image -Purpose of image is to help SMP and AP sofware developers to create development environment for localy testing Dynamic Discovery using SML and SMP. -Image uses latest version of eDelivery SMP setup on tomcat, mysql ubuntu - -# Image build - -docker build -t smp . - -# Run container based on smp image -docker run --name smp -it --rm -p [http-port]:8080 -v [local volume]:/data smp -example: -docker run --name smp --rm -it -p 8080:8080 -v /opt/dockerdata/smp:/data smp smp - -## SMP (param: -p 8080:8080 ) -url: http://localhost:8080/smp - -## MYSQL (param: -p 3306:3306) -Database client connection (for testing and debugging ) -url: jdbc:mysql://localhost:3306/smp -Username: smp -Password: smp - -## Volume (-v /opt/dockerdata/sml:/data) -Mysql database files and tomcat configuration (and logs) can be externalized for experimenting with different SMP settings. - - - - diff --git a/smp-docker/images/tomcat-mysql/entrypoint.sh b/smp-docker/images/tomcat-mysql/entrypoint.sh deleted file mode 100755 index 3222672081572be9993b07dfe8fedc3eb9345197..0000000000000000000000000000000000000000 --- a/smp-docker/images/tomcat-mysql/entrypoint.sh +++ /dev/null @@ -1,156 +0,0 @@ -#!/bin/sh - -#set -e - -# parameters -MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-"root"} -DB_USER=${DB_USER:-"smp"} -DB_USER_PASSWORD=${DB_USER_PASSWORD:-"secret123"} -DB_SCHEMA=${DB_SCHEMA:-"smp"} - -DATA_DIR=/smp/data -MYSQL_DATA_DIR=${DATA_DIR}/mysql -TOMCAT_DIR=${DATA_DIR}/tomcat -TOMCAT_HOME=${SMP_HOME}/apache-tomcat-$TOMCAT_VERSION/ -SQUID_CONFIG=/etc/squid/squid.smp.conf -SQUID_USERS=/etc/squid/passwd -SQUID_USER="proxyuser" -SQUID_PASSWORD="test123" - -if [ ! -d ${DATA_DIR} ]; then - mkdir -p ${DATA_DIR} -fi - -init_tomcat() { - # add java code coverage angent to image - JAVA_OPTS="-javaagent:/opt/jacoco/jacoco-agent.jar=output=tcpserver,address=*,port=6901 $JAVA_OPTS" - # add allow encoded slashes and disable scheme for proxy - JAVA_OPTS="$JAVA_OPTS -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true -Djdk.http.auth.tunneling.disabledSchemes=" - export JAVA_OPTS - - - echo "[INFO] init tomcat folders: $tfile" - if [ ! -d ${TOMCAT_DIR} ]; then - mkdir -p ${TOMCAT_DIR} - fi - - # move tomcat log folder to data folder - if [ ! -d ${TOMCAT_DIR}/logs ]; then - if [ ! -d ${TOMCAT_HOME}/logs ]; then - mkdir -p ${TOMCAT_DIR}/logs - else - mv ${TOMCAT_HOME}/logs ${TOMCAT_DIR}/ - rm -rf ${TOMCAT_HOME}/logs - fi - fi - rm -rf ${TOMCAT_HOME}/logs - ln -sf ${TOMCAT_DIR}/logs ${TOMCAT_HOME}/logs - - # move tomcat conf folder to data folder - if [ ! -d ${TOMCAT_DIR}/conf ]; then - mv ${TOMCAT_HOME}/conf ${TOMCAT_DIR}/ - fi - rm -rf ${TOMCAT_HOME}/conf - ln -sf ${TOMCAT_DIR}/conf ${TOMCAT_HOME}/conf - - # move smp conf folder to data folder - if [ ! -d ${TOMCAT_DIR}/smp ]; then - mv ${TOMCAT_HOME}/smp ${TOMCAT_DIR}/ - fi - rm -rf ${TOMCAT_HOME}/smp - ln -sf ${TOMCAT_DIR}/smp ${TOMCAT_HOME}/ - - # sleep a little to avoid mv issues - sleep 5s -} - - -init_mysql() { - echo "[INFO] init database: $tfile" - if [ ! -d "/run/mysqld" ]; then - mkdir -p /run/mysqld - chown -R mysql:mysql /run/mysqld - fi - - if [ ! -d ${MYSQL_DATA_DIR} ]; then - # sleep a little to avoid mv issues - sleep 3s - mv /var/lib/mysql ${DATA_DIR} - fi - - rm -rf /var/lib/mysql - ln -sf ${MYSQL_DATA_DIR} /var/lib/mysql - chmod -R 0777 ${MYSQL_DATA_DIR} - chown -R mysql:mysql ${MYSQL_DATA_DIR} - echo '[INFO] start MySQL' - sleep 5s - service mysql start - - - if [ -d ${MYSQL_DATA_DIR}/${DB_SCHEMA} ]; then - echo '[INFO] MySQL ${DB_SCHEMA} already present, skipping creation' - else - echo "[INFO] MySQL ${DB_SCHEMA} not found, creating initial DBs" - - echo 'Create smp database' - mysql -h localhost -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$MYSQL_ROOT_PASSWORD';drop schema if exists $DB_SCHEMA;DROP USER IF EXISTS $DB_USER; create schema $DB_SCHEMA;alter database $DB_SCHEMA charset=utf8; create user $DB_USER identified by '$DB_USER_PASSWORD';grant all on $DB_SCHEMA.* to $DB_USER;" - - if [ -f "/tmp/custom-database-scripts/mysql5innodb-data.sql" ] - then - echo "Use custom database script! " - mysql -h localhost -u root --password=$MYSQL_ROOT_PASSWORD $DB_SCHEMA < "tmp/custom-database-scripts/mysql5innodb.ddl" - else - echo "Use default database ddl script!" - mysql -h localhost -u root --password=$MYSQL_ROOT_PASSWORD $DB_SCHEMA < "/tmp/artefacts/database-scripts/mysql5innodb.ddl" - fi - - if [ -f "/tmp/custom-database-scripts/mysql5innodb-data.sql" ] - then - echo "Use custom init script! " - mysql -h localhost -u root --password=$MYSQL_ROOT_PASSWORD $DB_SCHEMA < "/tmp/custom-database-scripts/mysql5innodb-data.sql" - else - echo "Use default init script!" - mysql -h localhost -u root --password=$MYSQL_ROOT_PASSWORD $DB_SCHEMA < "/tmp/artefacts/database-scripts/mysql5innodb-data.sql" - fi - - fi -sleep 5s - # start mysql -} - -init_squid() { -echo '[INFO] start squid' -# create squid property file - echo "auth_param basic program /usr/lib/squid3/basic_ncsa_auth $SQUID_USERS" > $SQUID_CONFIG - echo "auth_param basic children 1" >> $SQUID_CONFIG - echo "auth_param basic credentialsttl 1 minute" >> $SQUID_CONFIG - echo "auth_param basic casesensitive off" >> $SQUID_CONFIG - echo "" >> $SQUID_CONFIG - echo "acl auth proxy_auth REQUIRED" >> $SQUID_CONFIG - echo "http_access allow auth" >> $SQUID_CONFIG - echo "http_access deny all" >> $SQUID_CONFIG - echo "" >> $SQUID_CONFIG -# just to make sure this configuration is loaded :) - echo "http_port 3127" >> $SQUID_CONFIG - - # create a user - htpasswd -b -c $SQUID_USERS $SQUID_USER $SQUID_PASSWORD - - $(which squid) -N -f /etc/squid/squid.conf -z - { nohup $(which squid) -f /etc/squid/squid.smp.conf -NYCd 1 &> /var/log/squid/squid.out & } - -} - -init_mysql -init_tomcat -init_squid - -echo '[INFO] start running SMP' -chmod u+x $SMP_HOME/apache-tomcat-$TOMCAT_VERSION/bin/*.sh -cd $SMP_HOME/apache-tomcat-$TOMCAT_VERSION/ -# run from this folder in order to be smp log in logs folder -exec ./bin/catalina.sh run - - - -