Skip to content

OpenShift-Z/open-liberty-s2i

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open Liberty UBI-min images for OpenShift S2I

This repository contains the source for building an Open Liberty Source to Image (S2I) builder using Red Hat Universal Base Image (UBI) 7 and Java 8.

More information on S2I can be found at https://github.com/openshift/source-to-image

The built S2I image can be run using Docker.

Building the images

Images are built using docker community edition and cekit version 3. Mac OSX installation and build tips.

Cloning the repository:

$ git clone https://github.com/openliberty/open-liberty-s2i
$ cd open-liberty-s2i

Building the Open Liberty S2I builder:

$ cekit build docker

S2I Usage

To build a simple jee application using standalone S2I and then run the resulting image with Docker execute:

$ s2i build git://github.com/openshift/openshift-jee-sample openliberty/open-liberty-s2i:latest open-liberty-test
$ docker run -p 9080:9080 open-liberty-test

Accessing the application:

$ curl 127.0.0.1:9080/ROOT

Test

The tests for this repository check basic functionality of a JEE application built on top of the Open Liberty S2I image.

$ make test

S2I Build Behavior

If a pom.xml file is found in the root of the source tree, it will be built using maven.

If the root of the source tree contains a file named Dockerfile and a directory named maven then the build will assume that the source tree is the output of the fabric8 maven plugin

If the environment variable LIBERTY_RUNNABLE_JAR is set, the build will attempt to copy that file to /opt/ol/ol-runnable.jar. At runtime, S2I will run that jar file instead of running the normal Liberty instance.

If a server.xml file exists in the directory src/main/liberty/config it will be copied to the config directory of the Liberty instance.

If the directory src/wlp/usr exists, it will be copied to the wlp directory o the Libert instance.

All WAR, JAR, EAR, and RAR files from the build will be copied to either the apps or dropins directory the Liberty instance depending on the value of the DEPLOY_TO_APPS environment variable.

Environment variables to be used at s2i build time

The following environment variables can be passed to the S2I build process to customize Open Liberty. More information on these variables and the functions they enable can be found at https://github.com/OpenLiberty/ci.docker

  • MAVEN_MIRROR_URL
    • Description: Use the specified maven mirror to resolve dependencies
  • DEPLOY_TO_APPS
    • Description: When true, applicaton binaries will be copied to apps instead of dropins
  • HTTP_ENDPOINT
  • MP_HEALTH_CHECK
  • MP_MONITORING
    • Description: Monitor the server runtime environment and application metrics by using Liberty features mpMetrics-1.1 (implements Microprofile Metrics) and monitor-1.0.
    • XML Snippet Location: mp-monitoring.xml
    • Note: With this option, /metrics endpoint is configured without authentication to support the environments that do not yet support scraping secured endpoints.
  • TLS or SSL (SSL is being deprecated)
    • Description: Enable Transport Security in Liberty by adding the transportSecurity-1.0 feature (includes support for SSL).
    • XML Snippet Location: keystore.xml.
  • IIOP_ENDPOINT
  • JMS_ENDPOINT
  • OIDC
    • Description: Enable OpenIdConnect Client function by adding the openidConnectClient-1.0 feature.
    • XML Snippet Location: oidc.xml
  • OIDC_CONFIG
    • Description: Enable OpenIdConnect Client configuration to be read from environment variables.
    • XML Snippet Location: oidc-config.xml
    • Note: The following variables will be read: OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, OIDC_DISCOVERY_URL.

Server Configuration

If you want to use your own server.xml file rather than the default, it should be present in the src/main/liberty/config directory.

OpenShift oc usage

If your openshift installation doesn't already contain the Open Liberty image:

  • Adding the image streams: oc create -f imagestreams/openliberty-ubi-min.json An Open Liberty imagestream will be created.

  • When adding the Open Liberty imagestream to the openshift namespace, the OpenShift catalog is automatically populated with a the template Open Liberty allowing you to create a new build and new deployment from the OpenShift Web Console.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 62.5%
  • Java 23.3%
  • HTML 11.9%
  • Makefile 1.8%
  • Dockerfile 0.5%