WODockerApp
WebObjects mvn jetty deployment in Docker with minimal amount of components
The project aims to show how WebObjects applications can be run in Docker containers. This deployment showcases how you can run your WebObjects application on Docker on multiple hosts with a minimum amount of components and docker native scaling options.
Demo App
For demonsration porposes was created simple mvn based application which includes:
- 1 WebServerResource
- 1 external library(JUnit)
- 1 simple junit test
Application versions:
- java11
- WebObjects 5.4.3
- Wonder 7.4
The application's session is stored in cookies and the page is showing the hostname of the instance it is running on.
IDEA
This version can be run on any other idea which supports mvn by running mvn -Pnoneclipse compile war:war
command. In this case war file will be executed in jetty server and can be accessible via localhost:8080/cgi-bin/WebObjects/wodockerapp.woa
Docker Images
womvnenvironment
This image contains all settings to have WebObjects mvn enabled and additionaly preloaded wonder7.4 and WebObjects5.4.3 frameworks.
Quick Start
docker-compose
To run the application for demonstration purposes simply use docker-compose
docker-compose up
Docker Swarm
The application can be also run in the docker swarm mode. In this case, you would be able to scale your application instances easier.
docker swarm init
docker stack deploy -c stack.yml webobjects
Each of these commands will create a stack with services that expose following endpoints:
- 127.0.0.1/cgi-bin/WebObjects/wodockerapp.woa demo application which is already running.