https://www.deegree.org/deegree2024-03-28T16:56:34+00:00deegree is open source software for spatial data infrastructures and the geospatial web. deegree offers components for geospatial data management, including data access, visualization, discovery and security. Open standards are at the heart of deegree.deegree TMCtmc_at_deegree_dot_orghttp://www.deegree.org/Jekyllhttps://www.deegree.org/blog/blog-download-docker-images-from-docker-hub/Download docker images from docker hub2016-08-30T00:00:00+00:00deegree TMCtmc_at_deegree_dot_orghttp://www.deegree.org/<p>Get current deegree release versions from <a href="https://hub.docker.com/r/deegree/deegree3-docker/">docker hub</a>:</p>
<ul>
<li>3.5 - <code class="language-plaintext highlighter-rouge">docker pull deegree/deegree3-docker:3.5</code></li>
<li>3.4 - <code class="language-plaintext highlighter-rouge">docker pull deegree/deegree3-docker:3.4</code></li>
</ul>
<p>To pull the latest docker image use <code class="language-plaintext highlighter-rouge">docker pull deegree/deegree3-docker:latest</code>. This will pull the latest image which is currently 3.5.x! To stick with a specific bugfix version use <code class="language-plaintext highlighter-rouge">docker pull deegree/deegree3-docker:3.5.1</code>. Only the tags for the last recent versions are updated.</p>
<p>To start a docker container with the name deegree on port 8080 run the following command:</p>
<p><code class="language-plaintext highlighter-rouge">docker run -p 8080:8080 --name deegree --rm deegree/deegree3-docker</code></p>
<p>The Dockerfile is available at <a href="https://github.com/deegree/deegree3-docker">https://github.com/deegree/deegree3-docker</a>.</p>
<p>Older versions of deegree Docker images are available from <a href="https://hub.docker.com/r/tfr42/deegree/">https://hub.docker.com/r/tfr42/deegree/</a>. The related Dockerfile is available at <a href="https://github.com/tfr42/deegree-docker">https://github.com/tfr42/deegree-docker</a>.</p>
<hr />
<p><em>Update 2019-10-26:</em>
Updated links to official deegree docker repository and versions.</p>
<p><em>Update 2023-08-17:</em>
Updated image tags and versions for 3.5.</p>
2016-08-30T00:00:00+00:00https://www.deegree.org/blog/getting-started-with-deegree-on-docker/Getting started with deegree on docker2015-10-01T00:00:00+00:00deegree TMCtmc_at_deegree_dot_orghttp://www.deegree.org/<p>This blog post is meant to be the starting point for a series of posts about the usage of docker as a platform to build comprehensive geospatial webservices based on deegree. The first step to get started with docker and deegree is to think about deegree’s system requirements. Well, that question has a very short answer: java and a servlet container. So I began to search for possible solutions to have a docker image fulfilling these prerequisities. I found the official tomcat container image on docker hub (<a href="http://hub.docker.com">http://hub.docker.com</a>). This acts as blueprint for my new deegree docker container. My two favorite things about docker are: there are tons of docker images to be used as blueprints to setup your own containers and it is really easy to use. Using the tomcat image leads into the following dockerfile:</p>
<div class="language-docker highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">FROM</span><span class="s"> tomcat</span>
<span class="k">MAINTAINER</span><span class="s"> Sebastian Goerke &lt;goerke@lat-lon.de&gt;</span>
<span class="c"># set deegree version</span>
<span class="k">ENV</span><span class="s"> DEEGREE_VERSION 3.3.14</span>
<span class="c"># download deegree</span>
<span class="k">RUN </span>wget http://repo.deegree.org/content/repositories/public/org/deegree/deegree-webservices/<span class="k">${</span><span class="nv">DEEGREE_VERSION</span><span class="k">}</span>/deegree-webservices-<span class="k">${</span><span class="nv">DEEGREE_VERSION</span><span class="k">}</span>.war <span class="nt">-O</span> /usr/local/tomcat/webapps/deegree-webservices.war
<span class="k">CMD</span><span class="s"> ["catalina.sh", "run"]</span>
</code></pre></div></div>
<p>With only these few lines it is possible to build and run a blank stable deegree webservices 3.3.14 on docker. But for a more advanced environment I want to add a PostGIS database to use it as a datasource. There is a nice image on the web which is built upon the official Postgres docker container (<a href="https://registry.hub.docker.com/u/mdillon/postgis/">https://registry.hub.docker.com/u/mdillon/postgis/</a>). Okay, now we have the dockerfile for the deegree container and we’ve got an image for running a PostGIS container. What I did next, to make things easier for users, was to add an image built from the dockerfile above to the docker hub. Now it is pretty easy to get that image using:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docker pull segoerke/deegree
<span class="c"># For the postgis image you can do exactly the same:</span>
docker pull mdillon/postgis
<span class="c"># Now, it is pretty easy to startup a nice environment with a database server container and a web application container:</span>
docker run <span class="nt">-p</span> 5432:5432 <span class="nt">--name</span> db <span class="nt">-d</span> mdillon/postgis
docker run <span class="nt">--name</span> deegree <span class="nt">--link</span> db:db <span class="nt">-p</span> 8080:8080 <span class="nt">-d</span> segoerke/deegree
</code></pre></div></div>
<p>I already added port forwarding to the containers to be able to connect to them from my own server machine through these. So I am able to work on the database through localhost:5432 and I can access the tomcat through localhost:8080 on my local machine to work with the docker apps. Now it is possible to configure the deegree webservices and fill the database with data to be published with deegree webservices. I hope this short introduction is helpful to get started with deegree on docker. My idea is to have some more blog posts regarding a full INSPIRE setup with docker and orchestrated deegree containers.</p>
2015-10-01T00:00:00+00:00https://www.deegree.org/blog/blog-quo-vadis-deegree/Quo vadis deegree?2015-03-13T00:00:00+00:00deegree TMCtmc_at_deegree_dot_orghttp://www.deegree.org/<p><em>And why we still stick with Java</em></p>
<p>deegree has proven in productive environments to comply to the <a href="https://www.opengeospatial.org/docs/is">OGC standards for geospatial web services</a> as well as to tackle even the complex INSPIRE regulations. Including the performance requirements specified in the <a href="https://inspire.ec.europa.eu/Technical-Guidelines2/Network-Services/41">INSPIRE Technical Guidance for network services</a>. Saying this also implies to have a closer look how this relates to the technology stack chosen for deegree web services and how to benefit from it when we think about the future development of deegree.</p>
<p>From the beginning of the open source project deegree was designed to run on the <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/index.html">Java Virtual Machine (JVM)</a> the most used runtime environment for business critical applications. Using Java as a programming language has for sure one big advantage in using an object-oriented programming language to design internal domain models such as the one for GML and to leverage the rich API’s provided by Java SE and EE. But the main advantage for developing full-fledged SDI solutions is to have a mature runtime environment which also supports multiple languages out of the box. Today with Java SE 8 you can write your code in Java, but also use <a href="https://docs.oracle.com/javase/8/docs/technotes/guides/vm/multiple-language-support.html">other languages such as Scala, Groovy, Clojure or JRuby and Jython</a>. The JVM makes that happen. You can even develop extensions in JavaScript using modern frameworks such as <a href="https://nodejs.org/en/">node.js</a> where projects like <a href="https://www.nodyn.io">nodyn</a> come into place. When developing extensions for deegree you have the choice which language to use. And the deegree community will be pleased to guide you through the steps to incorporate extensions written in other languages than Java.</p>
<p>Microservices are another approach which got a lot of attention recently when discussing the development of cross-language applications - which means mixing different programming languages together. Main characteristics of a microservice architecture are decentralized governance and data management and most important design for failure. Synchronous calls are considered harmful and microservices take into account that a service call could fail due to unavailability of the remote service provider and the consuming client has to respond to this as tolerant as possible. The decentralized governance opens the door to use the right tool for the job. Regardless if you want to use node.js or C++, to build for example a fast and reliable map projection service, a tool such as <a href="https://www.rabbitmq.com">RabbitMQ</a> provides the lightweight infrastructure to plug it into deegree. Or you use RESTish protocols to incorporate smart endpoints with a more coarse-grained communication structure compared to chatty RCP or SOAP calls. To transform the monolithic approach of deegree into a more microservice architectural style is a very challenging task and contributions from the community are welcome. And finally we don’t have to forget that deegree web services are running on every <a href="https://www.oracle.com/java/technologies/java-ee-glance.html">Java EE 5 or higher compliant</a> application server such as <a href="https://wildfly.org">JBoss Wildfly</a>, <a href="https://javaee.github.io/glassfish/">GlassFish</a>, <a href="https://www.oracle.com/middleware/technologies/weblogic.html">Oracle WebLogic Server</a> and still on the <a href="http://tomcat.apache.org">Apache Tomcat</a> servlet container. Within the IT the Java Enterprise Edition (Java EE) platform has been adopted by millions of developers and companies providing business services in large-scale environments. As a geodata provider you can setup a technical infrastructure running multiple Tomcat or WebLogicServer instances within a cluster to meet demanding performance requirements.</p>
<p>Our goal is to get deegree ready for the enterprise and that it will meet the needs of data center provider and DevOps. And operations in the area of cloud computing is quite crucial. Support for cloud computing in Java EE was planned for version 7 but has been moved to Java EE 8 where we can expect the JCP experts group will publish the final draft for <a href="https://jcp.org/en/jsr/detail?id=366">JSR 366</a> by the end of 2015. There are early implementations available such as a deegree tilestore to use storage back-ends such as <a href="http://cassandra.apache.org">Apache Cassandra</a> to provide access to tiles stored in the cloud which can be served by <a href="https://github.com/martin-vi/deegree-tilestore-cassandra">deegree’s OGC WMTS implementation</a>.</p>
<p>We are quite curious how and when this will be adopted by users and developers. We are looking forward to discuss further at one of the next user meetings or on our mailing list.</p>
<hr />
<p><em>Update 2019-10-26:</em>
<a href="https://jakarta.ee">Jakarta EE</a> is focused on enabling Open Source Cloud Native Java.</p>
2015-03-13T00:00:00+00:00