Coder Social home page Coder Social logo

s2i-tomcat's Introduction

Tomcat - CentOS Docker image

All of that is sampled from Wildfly openshift s2i project

Supported tags and respective Dockerfile links for image s2i-tomcat

This repository contains the source for building various versions of the Tomcat application as a reproducible Docker image using source-to-image. The resulting image can be run using Docker.

Versions

Tomcat versions currently provided are:

  • Tomcat v6
  • Tomcat v7
  • Tomcat v8
  • Tomcat v8.5

CentOS versions currently provided are:

  • CentOS7

Java versions currently provided are:

  • Openjdk-7
  • Openjdk-8

Maven versions currently provided are:

  • maven-3.2.5
  • maven-3.3.9
  • maven-3.5.0

Installation

This image is available on DockerHub. To download it, run:

$ docker pull sarcouy/s2i-tomcat:$TOMCAT_VERSION-jdk$JDK_VERSION-mvn$MAVEN_VERSION

for example

$ docker pull sarcouy/s2i-tomcat:8.5-jdk8-mvn3.3.9 

Usage

To build a simple java maven tomcat using standalone S2I and then run the resulting image with Docker execute:

$ s2i build -e WAR_NAME=app.war -e INCREMENTAL=false git://github.com/example/openshift-tomcat-example sarcouy/s2i-tomcat:8.5-jdk8-mvn3.3.9 tomcattest
$ docker run -p 8080:8080 tomcattest

If you want to use an incremental build, INCREMENTAL=true is the defaul value, so you can skip it

$ s2i build -e WAR_NAME=app.war -e INCREMENTAL=true --incremental git://github.com/example/openshift-tomcat-example sarcouy/s2i-tomcat:8.5-jdk8-mvn3.3.9 tomcattest
$ docker run -p 8080:8080 tomcattest

Accessing the application:

$ curl 127.0.0.1:8080

Repository organization

  • <Tomcat-version>
    • <Maven-version>
      • <Java-version>

        • Dockerfile

          CentOS based Dockerfile

        • s2i/bin/

          This folder contains scripts that are run by S2I:

          • assemble
          Is used to restore the build artifacts from the previous build (in case of
          'incremental build'), to install the sources into location from where the
          application will be run and prepare the application for deployment (eg.
          installing maven dependencies, building java code, etc..).
          
          • run
          This script is responsible for running the application, by using the
          Apache-tomcat application server.
          
          • save-artifacts
          In order to do an *incremental build* (iow. re-use the build artifacts
          from an already built image in a new image), this script is responsible for
          archiving those. In this image, this script will archive the
          maven dependencies.
          
        • contrib/

          • setting.xml A random setting.xml file

Image version structure

Structure: openshift/1-2-3
  1. Platform version - 8
  2. a dash "-"
  3. Java version - jdk7
  4. a dash "-"
  5. Maven version - mvn3.2.5

Example: sarcouy/s2i-tomcat:8-jdk8-mvn3.2.5 Environment variables

To set environment variables, you can place them as a key value pair into a .sti/environment file inside your source code repository or add -e FOO=BAR to s2i build -e FOO=BAR .

  • MAVEN_ARGS

    Overrides the default arguments passed to maven durin the build process

  • MAVEN_ARGS_APPEND

    This value will be appended to either the default maven arguments, or the value of MAVEN_ARGS if MAVEN_ARGS is set.

  • INCREMENTAL

    This is a boolean : Set it "true" avoid removing .m2 between two builds (but that makes heavier images). Must be used with s2i build --incremental If you don't want an incremental build, and a lighter docker image set -e INCREMENTAL=false Default to true

  • WAR_NAME

    Name of the war file to move into webapps directory after maven build WAR_NAME=myApp.war

  • POM_PATH

    Usefull for many pom.xml git repositories, specify the path to follow into the repo to find the pom file to use. default to POM_PATH=.

Copyright

Released under the Apache License 2.0. See the LICENSE file.

s2i-tomcat's People

Contributors

justrollgit avatar sarcouy 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.