Gradle plug-in to create a Docker image that includes an Eclipse Virgo container.
During our preparations for the EclipseCon talk about our first Docker project, we spent quite some time packaging Virgo containers inside Docker images.
We investigated how to improve the continuous delivery of Virgo powered applications using Gradle and Docker. The outcome is the Gradle Plugin ''dockerizor''.
In a first step we automated the generation of basic Virgo images.
The following build snippet applies the Gradle Plugin Dockerizor to your build script:
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "gradle.plugin.com.eclipsesource.dockerizor:dockerizor:0.6.3"
}
}
apply plugin: "com.eclipsesource.dockerizor"
Both the Docker...
dockerizor {
maintainer = 'Florian Waibel <[email protected]>'
description = 'Docker image build with dockerizor'
// docker client configuration
uri = "http://localhost:4243"
tag = "latest"
javaImage = 'java:openjdk-6b36-jre'
}
...and Virgo specific configuration is done within the dockerizor
block.
dockerizor {
virgoFlavour = 'VJS'
removeAdminConsole = true
removeSplash = true
imageName = 'virgo-jetty-server'
}
The snippet above creates a Docker image named 'virgo-jetty-server' with the Virgo flavor VJS (Virgo Jetty Server).
$ docker images | grep virgo-jetty-server
eclipsesource/virgo-jetty-server 3.6.4.RELEASE 0f900c762dcf 5 minutes ago 332.7 MB
The generated basic images for Virgo are available via Docker Hub:
- Virgo Server for Apache Tomcat: https://registry.hub.docker.com/u/eclipsesource/virgo-tomcat-server/
- Virgo Jetty Server: https://registry.hub.docker.com/u/eclipsesource/virgo-jetty-server/
- Virgo RAP Server: https://registry.hub.docker.com/u/eclipsesource/virgo-rap-server/