Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit c200c033 authored by Joze RIHTARSIC's avatar Joze RIHTARSIC
Browse files

remove tomcat-msql images (keep version with SML)

parent 88302092
No related branches found
No related tags found
No related merge requests found
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
#!/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;
#!/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
......@@ -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
......
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\&amp;characterEncoding=UTF-8\&amp;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"]
# 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.
#!/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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment