ISIS-1558: replaces configuration with mavenmixin-docker.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/9ccf35ad Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/9ccf35ad Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/9ccf35ad Branch: refs/heads/maint-1.13.3 Commit: 9ccf35ada8983460947ea9d71655a33ce4fc69b8 Parents: 8b025f3 Author: Dan Haywood <d...@haywood-associates.co.uk> Authored: Thu Dec 22 17:28:33 2016 +0000 Committer: Dan Haywood <d...@haywood-associates.co.uk> Committed: Thu Dec 22 18:54:30 2016 +0000 ---------------------------------------------------------------------- example/application/simpleapp/README.adoc | 40 ++++++++++- example/application/simpleapp/pom.xml | 2 +- example/application/simpleapp/webapp/pom.xml | 74 ++------------------ .../webapp/src/main/resources/docker/Dockerfile | 1 - 4 files changed, 46 insertions(+), 71 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/isis/blob/9ccf35ad/example/application/simpleapp/README.adoc ---------------------------------------------------------------------- diff --git a/example/application/simpleapp/README.adoc b/example/application/simpleapp/README.adoc index df457bb..e61edec 100644 --- a/example/application/simpleapp/README.adoc +++ b/example/application/simpleapp/README.adoc @@ -51,7 +51,7 @@ Larger applications should consist of multiple modules; each such module can be ==== |`webapp` -|Assembles the application into a webapp (comprising both the Wicket viewer and Restful Objects viewer) and runs the `isis:swagger` goal. +|Assembles the application into a webapp (comprising both the Wicket viewer and Restful Objects viewer) and also as a docker image, and runs the `isis:swagger` goal. |`_checks` |Checkstyle and PMD rule sets for static analysis. @@ -88,6 +88,21 @@ cd webapp/target && java -jar simpleapp-webapp-xxx-jetty-console.war ---- + Add additional flags, eg ``--headless`` or ``--port 9999``, if required. ++ +It can also be run using: + ++ +[source,bash] +---- +mvn -pl webapp && mvn antrun:run -Dmavenmixin-jettyconsole +---- ++ +or to specify arguments: ++ +[source,bash] +---- +mvn -pl webapp && mvn antrun:run -Dmavenmixin-jettyconsole \ + -Dmaven-antrun-plugin.jettyconsole.args="--headless --port 9090" +---- * To also generate source and javadoc JARs: @@ -191,4 +206,27 @@ mvn -Dskip.danhaywood-mavenmixin-isisswagger By default, Swagger spec files are generated at `target/generated-resources/isis-swagger` (in the ``webapp`` module). ==== +* To package up the application as a docker image: + ++ +[source,bash] +---- +mvn package -Dmavenmixin-docker +---- ++ +This assumes that the `${docker-plugin.imageName}` property has been defined in the `webapp` module. +Alternatively it can be specified on the command line using a system property, eg: ++ +[source,bash] +---- +mvn package -Dmavenmixin-docker -Ddocker-plugin.imageName=mycompany/myapp +---- +* To upload the application as a docker image to link:https://hub.docker.com[docker hub]: + ++ +[source,bash] +---- +mvn deploy -Dmavenmixin-docker +---- ++ +This once again assumes that the `${docker-plugin.imageName}` property has been defined, _and_ also that docker registry credentials have been specified in `~/.m2/settings.xml`. +See link:https://github.com/danhaywood/java-mavenmixin-docker#how-to-configure[mavenmixin-docker] for further details. http://git-wip-us.apache.org/repos/asf/isis/blob/9ccf35ad/example/application/simpleapp/pom.xml ---------------------------------------------------------------------- diff --git a/example/application/simpleapp/pom.xml b/example/application/simpleapp/pom.xml index 0616fa7..464ffdf 100644 --- a/example/application/simpleapp/pom.xml +++ b/example/application/simpleapp/pom.xml @@ -89,7 +89,7 @@ <jdepend-maven-plugin.version>2.0-beta-2</jdepend-maven-plugin.version> <findbugs-maven-plugin.version>2.5</findbugs-maven-plugin.version> - <mavenmixin-docker.version>0.0.1-SNAPSHOT</mavenmixin-docker.version> + <mavenmixin-docker.version>0.0.2</mavenmixin-docker.version> <maven-deploy-plugin.version>2.8.1</maven-deploy-plugin.version> <docker-maven-plugin.version>0.4.13</docker-maven-plugin.version> http://git-wip-us.apache.org/repos/asf/isis/blob/9ccf35ad/example/application/simpleapp/webapp/pom.xml ---------------------------------------------------------------------- diff --git a/example/application/simpleapp/webapp/pom.xml b/example/application/simpleapp/webapp/pom.xml index 41d77bb..d0a2e40 100644 --- a/example/application/simpleapp/webapp/pom.xml +++ b/example/application/simpleapp/webapp/pom.xml @@ -43,9 +43,8 @@ <maven-war-plugin.warName>${project.parent.artifactId}</maven-war-plugin.warName> - <docker-plugin.imageName>danhaywood/isis-app-simpleapp</docker-plugin.imageName> + <docker-plugin.imageName>DOCKER_REGISTRY_ACCOUNT/${project.parent.artifactId}</docker-plugin.imageName> <docker-plugin.resource.include>${maven-war-plugin.warName}.war</docker-plugin.resource.include> - <docker-plugin.maintainer>Apache Isis committers</docker-plugin.maintainer> <docker-plugin.serverId>docker-hub</docker-plugin.serverId> <docker-plugin.registryUrl>https://index.docker.io/v1/</docker-plugin.registryUrl> @@ -128,76 +127,15 @@ <artifactId>jettyconsole</artifactId> <version>${mavenmixin-jettyconsole.version}</version> </mixin> + <mixin> + <groupId>com.danhaywood.mavenmixin</groupId> + <artifactId>docker</artifactId> + <version>${mavenmixin-docker.version}</version> + </mixin> </mixins> </configuration> </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-deploy-plugin</artifactId> - <configuration> - <skip>true</skip> - </configuration> - </plugin> - <plugin> - <groupId>com.spotify</groupId> - <artifactId>docker-maven-plugin</artifactId> - <executions> - <execution> - <id>build-image</id> - <phase>package</phase> - <goals> - <goal>build</goal> - </goals> - </execution> - <execution> - <id>tag-image</id> - <phase>install</phase> - <goals> - <goal>tag</goal> - </goals> - <configuration> - <image>${docker-plugin.imageName}</image> - <newName>${docker-plugin.imageName}:${project.version}</newName> - </configuration> - </execution> - <execution> - <id>push-image</id> - <phase>deploy</phase> - <goals> - <goal>push</goal> - </goals> - <configuration> - <imageName>${docker-plugin.imageName}:${project.version}</imageName> - </configuration> - </execution> - <execution> - <id>push-image-latest</id> - <phase>deploy</phase> - <goals> - <goal>push</goal> - </goals> - <configuration> - <imageName>${docker-plugin.imageName}:latest</imageName> - </configuration> - </execution> - </executions> - <configuration> - <imageName>${docker-plugin.imageName}</imageName> - <dockerDirectory>${build.outputDirectory}/docker</dockerDirectory> - <resources> - <resource> - <targetPath>.</targetPath> - <directory>${project.build.directory}</directory> - <include>${docker-plugin.resource.include}</include> - </resource> - </resources> - <serverId>${docker-plugin.serverId}</serverId> - <registryUrl>${docker-plugin.registryUrl}</registryUrl> - </configuration> - </plugin> - - </plugins> </build> http://git-wip-us.apache.org/repos/asf/isis/blob/9ccf35ad/example/application/simpleapp/webapp/src/main/resources/docker/Dockerfile ---------------------------------------------------------------------- diff --git a/example/application/simpleapp/webapp/src/main/resources/docker/Dockerfile b/example/application/simpleapp/webapp/src/main/resources/docker/Dockerfile index eb975db..4c83be7 100644 --- a/example/application/simpleapp/webapp/src/main/resources/docker/Dockerfile +++ b/example/application/simpleapp/webapp/src/main/resources/docker/Dockerfile @@ -1,5 +1,4 @@ FROM incodehq/tomcat -MAINTAINER ${docker-plugin.maintainer} RUN rm -rf ${DEPLOYMENT_DIR}/ROOT COPY ${docker-plugin.resource.include} ${DEPLOYMENT_DIR}/ROOT.war EXPOSE 8080 \ No newline at end of file