Git Product home page Git Product logo

hippo-docker-example's Introduction

Running locally

This project uses the Maven Cargo plugin to run Essentials, the CMS and site locally in Tomcat. From the project root folder, execute:

mvn clean verify
mvn -P cargo.run

By default this includes and bootstraps repository data from the repository-data/development module, which is deployed by cargo to the Tomcat shared/lib. If you want or need to start without bootstrapping the development data, for example when testing against an existing repository, you can specify the additional Maven profile without-development-data to do so:

mvn -P cargo.run,without-development-data

This additional profile will modify the target location for the development module to the Tomcat temp/ folder so that it won't be seen and picked up during the repository bootstrap process.

Access the Hippo Essentials at http://localhost:8080/essentials. After your project is set up, access the CMS at http://localhost:8080/cms and the site at http://localhost:8080/site. Logs are located in target/tomcat8x/logs

Building distributions

To build Tomcat distribution tarballs:

mvn clean verify
mvn -P dist
  or
mvn -P dist-with-development-data

The dist profile will produce in the /target directory a distribution tarball, containing the main deployable wars and shared libraries.

The dist-with-development-data profile will produce a distribution-with-development-data tarball, also containing the repository-data-development jar in the shared/lib directory. This kind of distribution is meant to be used for deployments to development environments, for instance local deployments or deployments to a continuous integration (CI) system. (Initially, this module contains only "author" and "editor" example users for use in testing. Other data must be placed in this module explicitly by developers, for demo or testing purposes, etc.)

See also src/main/assembly/*.xml if you need to customize the distributions.

Building Docker Images

Build docker image with h2db as reprository storage

    mvn clean verify
    mvn -P docker.image

Build docker image with MySQL as repository storage

    mvn clean verify
    mvn -P docker.image.mysql

Running as Docker container

To run with h2db and default repository configuration:

    docker run -d -p 8080:8080 hippo/hippodockerexample

To run with mysql database: run mysql container:

   docker run --name hippo-db  \
   -e MYSQL_ROOT_PASSWORD=hippo \
   -e MYSQL_DATABASE=hippo \
   -e MYSQL_USER=hippo \
   -e MYSQL_PASSWORD=hippo \
   -e ON_CREATE_DB=hippo \
   -d mysql:5.6.36

run Hippo CMS container with link to database:

    docker run -d -p 8080:8080 --name hippo --link hippo-db:hippo-mysql-database hippo/hippodockerexample

Blog Article

https://medium.com/@maheshacharya_44641/hippo-cms-docker-containerization-703e2e4e496c

Using JRebel

Set the environment variable REBEL_HOME to the directory containing jrebel.jar.

Build with:

mvn clean verify -Djrebel

Start with:

mvn -P cargo.run -Djrebel

Best Practice for development

Use the option -Drepo.path=/some/path/to/repository during start up. This will avoid your repository to be cleared when you do a mvn clean.

For example start your project with:

mvn -P cargo.run -Drepo.path=/home/usr/tmp/repo

or with jrebel:

mvn -P cargo.run -Drepo.path=/home/usr/tmp/repo -Djrebel

Hot deploy

To hot deploy, redeploy or undeploy the CMS or site:

cd cms (or site)
mvn cargo:redeploy (or cargo:undeploy, or cargo:deploy)

Automatic Export

Automatic export of repository changes to the filesystem is turned on by default. To control this behavior, log into http://localhost:8080/cms/console and press the "Enable/Disable Auto Export" button at the top right. To set this as the default for your project edit the file ./repository-data/application/src/main/resources/configuration/modules/autoexport-module.xml

Monitoring with JMX Console

You may run the following command:

jconsole

Now open the local process org.apache.catalina.startup.Bootstrap start

hippo-docker-example's People

Contributors

maheshacharya avatar

Watchers

James Cloos avatar mihails zotovs avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.