anchor.diff:  a `pre_build` hook (Java and Maven are installed by default, Gradle is not)
   
   2. Use a `build` hook to build your jar (using Maven or Gradle), e.g.
  -
  ++
   ----
   #!/bin/bash
   cd $OPENSHIFT_REPO_DIR
   mvn package -s .openshift/settings.xml -DskipTests=true
   ----
  -
  ++
   3. Add a `start` hook that calls `java -jar ...`
  -
  ++
   ----
   #!/bin/bash
   cd $OPENSHIFT_REPO_DIR
   nohup java -jar target/*.jar --server.port=${OPENSHIFT_DIY_PORT} --server.address=${OPENSHIFT_DIY_IP} &
   ----
  -
  ++
   4. Use a `stop` hook (since the start is supposed to return cleanly), e.g.
  -
  ++
   ----
   #!/bin/bash
   source $OPENSHIFT_CARTRIDGE_SDK_BASH
  
positive.code:     kill $PID
  fi
  ----
  
  5. Embed service bindings from environment variables provided by the platform
  in your `application.properties`, e.g.
  
  ----
  spring.datasource.url: jdbc:mysql://${OPENSHIFT_MYSQL_DB_HOST}:${OPENSHIFT_MYSQL_DB_PORT}/${OPENSHIFT_APP_NAME}
  spring.datasource.username: ${OPENSHIFT_MYSQL_DB_USERNAME}
  
negative.code: 
  
  [[cloud-deployment-openshift]]
  == Openshift
  https://www.openshift.com/[Openshift] is the RedHat public (and enterprise) PaaS solution.
  Like Heroku, it works by running scripts triggered by git commits, so you can script
  the launching of a Spring Boot app in pretty much any way you like as long as the
  