diff --git a/smp-docker/images/build-docker-images.sh b/smp-docker/images/build-docker-images.sh index ae5bfcfb7aef3de4e4f653b9f41ff1874240327d..f5cbefc6af34a612eb8750d2ff2780dfe874d15a 100755 --- a/smp-docker/images/build-docker-images.sh +++ b/smp-docker/images/build-docker-images.sh @@ -30,7 +30,6 @@ DOCKER_USER=$bamboo_DOCKER_USER DOCKER_PASSWORD=$bamboo_DOCKER_PASSWORD - # READ argumnets while getopts v:o:s:c:p: option do diff --git a/smp-docker/images/tomcat-mysql/Dockerfile b/smp-docker/images/tomcat-mysql/Dockerfile index 404419984d2f0cf8be246bebff5e65dbde12de63..3d7ac3d4f898e548bdcfa4dc55746d5a4e7b3f35 100755 --- a/smp-docker/images/tomcat-mysql/Dockerfile +++ b/smp-docker/images/tomcat-mysql/Dockerfile @@ -14,13 +14,16 @@ ENV SMP_HOME=/opt/smp \ DB_USER_PASSWORD=smp \ MYSQL_ROOT_PASSWORD=root -EXPOSE 3306 8080 +EXPOSE 3306 8080 6400 +# Exposing ports used in entrypoint.sh .. +# - 3306 Mysql port +# - 6400 JaCoCo port +# - 8080 Tomcat port -ENV LANG en_US.utf8 -ADD ./artefacts /tmp/artefacts -COPY ./entrypoint.sh /sbin/entrypoint.sh -VOLUME ["/data"] +ENV JACOCO_VERSION 0.8.4 +ENV LANG en_US.utf8 +VOLUME ["/smp/data"] # install utils, java, mysql \ RUN apt-get update \ @@ -50,13 +53,19 @@ RUN apt-get update \ && 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 \ - && unzip /tmp/artefacts/smp-setup.zip -d /tmp/ \ + && echo "\nauthentication.blueCoat.enabled=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 http://central.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 \ - && sed -i -e "s/127.0.0.1/0.0.0.0/g" /etc/mysql/mysql.conf.d/mysqld.cnf + && chmod u+x /sbin/entrypoint.sh ENTRYPOINT ["/sbin/entrypoint.sh"] diff --git a/smp-docker/images/tomcat-mysql/entrypoint.sh b/smp-docker/images/tomcat-mysql/entrypoint.sh index 01ba5052d92d1d27fe93e4f38c3bd9c52c332899..3bf0bc3a9dba1855b524261719f447b5151e7c83 100755 --- a/smp-docker/images/tomcat-mysql/entrypoint.sh +++ b/smp-docker/images/tomcat-mysql/entrypoint.sh @@ -8,7 +8,7 @@ DB_USER=${DB_USER:-"smp"} DB_USER_PASSWORD=${DB_USER_PASSWORD:-"secret123"} DB_SCHEMA=${DB_SCHEMA:-"smp"} -DATA_DIR=/data +DATA_DIR=/smp/data MYSQL_DATA_DIR=${DATA_DIR}/mysql TOMCAT_DIR=${DATA_DIR}/tomcat TOMCAT_HOME=${SMP_HOME}/apache-tomcat-$TOMCAT_VERSION/ @@ -19,6 +19,10 @@ if [ ! -d ${DATA_DIR} ]; then fi init_tomcat() { + # add java code coverage angent to image + export JAVA_OPTS="-javaagent:/opt/jacoco/jacoco-agent.jar=output=tcpserver,address=*,port=6400" + + echo "[INFO] init tomcat folders: $tfile" if [ ! -d ${TOMCAT_DIR} ]; then mkdir -p ${TOMCAT_DIR} @@ -38,7 +42,7 @@ init_tomcat() { # move tomcat conf folder to data folder if [ ! -d ${TOMCAT_DIR}/conf ]; then - mv ${TOMCAT_HOME}/conf ${TOMCAT_DIR}/ + mv ${TOMCAT_HOME}/conf ${TOMCAT_DIR}/ fi rm -rf ${TOMCAT_HOME}/conf ln -sf ${TOMCAT_DIR}/conf ${TOMCAT_HOME}/conf @@ -47,9 +51,11 @@ init_tomcat() { if [ ! -d ${TOMCAT_DIR}/smp ]; then mv ${TOMCAT_HOME}/smp ${TOMCAT_DIR}/ fi - rm -rf ${TOMCAT_HOME}/smp + rm -rf ${TOMCAT_HOME}/smp ln -sf ${TOMCAT_DIR}/smp ${TOMCAT_HOME}/ + # sleep a little to avoid mv issues + sleep 5s } @@ -61,6 +67,8 @@ init_mysql() { fi if [ ! -d ${MYSQL_DATA_DIR} ]; then + # sleep a little to avoid mv issues + sleep 3s mv /var/lib/mysql ${DATA_DIR} fi @@ -69,9 +77,11 @@ init_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 + + 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" @@ -79,16 +89,16 @@ init_mysql() { 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" ]] + 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! test" + 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" ]] + 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" @@ -98,7 +108,7 @@ init_mysql() { fi fi - +sleep 5s # start mysql } @@ -107,7 +117,7 @@ init_mysql init_tomcat -echo '[INFO] start running domibus' +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