changeset 748:75e87b7d37c0

Add dockerised setup for running the server.
author Tom Gottfried <tom@intevation.de>
date Tue, 27 Oct 2015 18:38:54 +0100
parents 214508fd95e7
children cb841ed21405
files Dockerfile wildfly/commands.cli wildfly/execute.sh wildfly/hibernate-module.xml wildfly/postgres-module.xml
diffstat 5 files changed, 198 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Dockerfile	Tue Oct 27 18:38:54 2015 +0100
@@ -0,0 +1,77 @@
+#
+# Dockerfile for jboss wildfly application server cutomized for usage in the
+# BfS-Lada project
+#
+# Build with e.g. `docker build --force-rm=true -t koala/lada_wildfly .'
+# Run with e.g.
+# `docker run --name lada_wildfly --link lada_db:lada_db
+#            -dp 8181:8080 -p 1818:9990 koala/lada_wildfly'
+# The linked container may be created from db_schema/Dockerfile
+#
+
+FROM java:7-jdk
+MAINTAINER raimund.renkert@intevation.de
+
+#
+# install packages
+#
+RUN apt-get update -y && \
+    apt-get install -y libpostgresql-jdbc-java libpostgis-java libjts-java \
+            maven
+
+#
+# Set up Wildfly
+#
+RUN mkdir /opt/jboss
+
+RUN curl \
+    https://download.jboss.org/wildfly/8.2.1.Final/wildfly-8.2.1.Final.tar.gz \
+    | tar zx && mv wildfly-8.2.1.Final /opt/jboss/wildfly
+
+ENV JBOSS_HOME /opt/jboss/wildfly
+
+RUN $JBOSS_HOME/bin/add-user.sh admin secret --silent
+
+EXPOSE 8080 9990
+
+#
+# Add LADA-server repo
+#
+ADD . /usr/src/lada-server
+WORKDIR /usr/src/lada-server
+
+#
+# Wildfly setup specific for LADA
+#
+RUN mkdir -p $JBOSS_HOME/modules/org/postgres/main
+RUN ln -s /usr/share/java/postgresql-jdbc4-9.2.jar \
+       $JBOSS_HOME/modules/org/postgres/main/
+RUN ln -s /usr/share/java/postgis-jdbc-2.1.4.jar \
+       $JBOSS_HOME/modules/org/postgres/main/
+RUN ln -s /usr/share/java/jts-1.11.jar \
+       $JBOSS_HOME/modules/system/layers/base/org/hibernate/main/
+RUN curl \
+    http://www.hibernatespatial.org/repository/org/hibernate/hibernate-spatial/4.3/hibernate-spatial-4.3.jar > \
+    $JBOSS_HOME/modules/system/layers/base/org/hibernate/main/hibernate-spatial-4.3.jar
+
+RUN cp wildfly/postgres-module.xml \
+       $JBOSS_HOME/modules/org/postgres/main/module.xml
+RUN cp wildfly/hibernate-module.xml \
+       $JBOSS_HOME/modules/system/layers/base/org/hibernate/main/module.xml
+
+RUN wildfly/execute.sh
+
+RUN rm $JBOSS_HOME/standalone/configuration/standalone_xml_history/current/*
+
+#
+# Build and deploy LADA-server
+#
+RUN mvn clean compile package
+RUN mv target/lada-server-2.2.0.war $JBOSS_HOME/standalone/deployments
+RUN touch $JBOSS_HOME/standalone/deployments/lada-server.war.dodeploy
+
+#
+# This will boot WildFly in the standalone mode and bind to all interface
+#
+CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", \
+     "-bmanagement=0.0.0.0"]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wildfly/commands.cli	Tue Oct 27 18:38:54 2015 +0100
@@ -0,0 +1,6 @@
+batch
+/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgis.DriverWrapper)
+data-source add --jndi-name=java:/jboss/lada-bund --name=lada-bund --connection-url=jdbc:postgresql_postGIS://lada_db:5432/lada?currentSchema=bund --driver-name=postgres --user-name=lada --password=lada
+data-source add --jndi-name=java:/jboss/lada-land --name=lada-land --connection-url=jdbc:postgresql_postGIS://lada_db:5432/lada?currentSchema=land --driver-name=postgres --user-name=lada --password=lada
+data-source add --jndi-name=java:/jboss/lada-stamm --name=lada-stamm --connection-url=jdbc:postgresql_postGIS://lada_db:5432/lada?currentSchema=stammdaten --driver-name=postgres --user-name=lada --password=lada
+run-batch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wildfly/execute.sh	Tue Oct 27 18:38:54 2015 +0100
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+if [ -z $JBOSS_HOME ]
+then
+    JBOSS_HOME=/opt/jboss/wildfly
+fi
+JBOSS_CLI=$JBOSS_HOME/bin/jboss-cli.sh
+JBOSS_MODE=${1:-"standalone"}
+JBOSS_CONFIG=${2:-"$JBOSS_MODE.xml"}
+
+function wait_for_server() {
+    until `$JBOSS_CLI -c "ls /deployment" &> /dev/stdout`; do
+        sleep 1
+    done
+}
+
+function wait_for_shutdown() {
+    until `$JBOSS_CLI -c "ls /deployment" &> /dev/stdout`; do
+        sleep 1
+    done
+}
+
+echo "=> Starting WildFly server"
+$JBOSS_HOME/bin/$JBOSS_MODE.sh -c $JBOSS_CONFIG  &
+
+echo "=> Waiting for the server to boot"
+wait_for_server
+
+echo "=> Executing the commands"
+$JBOSS_CLI -c --user=admin --password=secret --file=`dirname "$0"`/commands.cli
+
+echo "=> Shutting down WildFly"
+if [ "$JBOSS_MODE" = "standalone" ]; then
+    $JBOSS_CLI -c ":shutdown"
+    sleep 10
+    echo "=> done."
+else
+    $JBOSS_CLI -c "/host=*:shutdown"
+fi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wildfly/hibernate-module.xml	Tue Oct 27 18:38:54 2015 +0100
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  ~ JBoss, Home of Professional Open Source.
+  ~ Copyright 2011, Red Hat, Inc., and individual contributors
+  ~ as indicated by the @author tags. See the copyright.txt file in the
+  ~ distribution for a full listing of individual contributors.
+  ~
+  ~ This is free software; you can redistribute it and/or modify it
+  ~ under the terms of the GNU Lesser General Public License as
+  ~ published by the Free Software Foundation; either version 2.1 of
+  ~ the License, or (at your option) any later version.
+  ~
+  ~ This software 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. See the GNU
+  ~ Lesser General Public License for more details.
+  ~
+  ~ You should have received a copy of the GNU Lesser General Public
+  ~ License along with this software; if not, write to the Free
+  ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  -->
+
+<!-- Represents the Hibernate 4.3.x module-->
+<module xmlns="urn:jboss:module:1.3" name="org.hibernate">
+    <resources>
+        <resource-root path="hibernate-core-4.3.7.Final.jar"/>
+        <resource-root path="hibernate-envers-4.3.7.Final.jar"/>
+        <resource-root path="hibernate-entitymanager-4.3.7.Final.jar"/>
+        <resource-root path="hibernate-infinispan-4.3.7.Final.jar"/>
+        <resource-root path="jipijapa-hibernate4-3-1.0.1.Final.jar"/>
+        <resource-root path="hibernate-spatial-4.3.jar"/>
+        <resource-root path="jts-1.11.jar"/>
+    </resources>
+
+    <dependencies>
+        <module name="asm.asm"/>
+        <module name="com.fasterxml.classmate"/>
+        <module name="javax.api"/>
+        <module name="javax.annotation.api"/>
+        <module name="javax.enterprise.api"/>
+        <module name="javax.persistence.api"/>
+        <module name="javax.transaction.api"/>
+        <module name="javax.validation.api"/>
+        <module name="javax.xml.bind.api"/>
+        <module name="org.antlr"/>
+        <module name="org.apache.commons.collections"/>
+        <module name="org.dom4j"/>
+        <module name="org.infinispan" services="import"/>
+        <module name="org.javassist"/>
+        <module name="org.jboss.as.clustering.common"/>
+        <module name="org.jboss.as.clustering.jgroups"/>
+        <module name="org.jboss.as.clustering.infinispan"/>
+        <module name="org.jboss.as.jpa.spi"/>
+        <module name="org.jboss.jandex"/>
+        <module name="org.jboss.logging"/>
+        <module name="org.jboss.vfs"/>
+        <module name="org.hibernate.commons-annotations"/>
+        <module name="org.postgres"/>
+    </dependencies>
+</module>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wildfly/postgres-module.xml	Tue Oct 27 18:38:54 2015 +0100
@@ -0,0 +1,14 @@
+<?xml version="1.0" ?>
+
+<module xmlns="urn:jboss:module:1.1" name="org.postgres">
+
+    <resources>
+        <resource-root path="postgis-jdbc-2.1.4.jar"/>
+        <resource-root path="postgresql-jdbc4-9.2.jar"/>
+    </resources>
+
+    <dependencies>
+        <module name="javax.api"/>
+        <module name="javax.transaction.api"/>
+    </dependencies>
+</module>
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)