From 874851184c0f7bd1fcd5c37482a9bcac6fe0ba86 Mon Sep 17 00:00:00 2001 From: Patrick Chanezon Date: Thu, 30 Jul 2015 18:01:19 -0700 Subject: [PATCH 1/9] fixed docker build issue in mvn pom --- README.md | 20 +- pom.xml | 2 +- spring-doge/pom.xml | 197 +++++++++++------- spring-doge/src/main/docker/Dockerfile | 9 + .../src/main/docker/docker-compose.yml | 10 + 5 files changed, 164 insertions(+), 74 deletions(-) create mode 100644 spring-doge/src/main/docker/Dockerfile create mode 100644 spring-doge/src/main/docker/docker-compose.yml diff --git a/README.md b/README.md index 4aefad6..cdea78a 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,23 @@ https://gist.github.com/relaxdiego/7539911 https://github.com/pivotal-cf/java-8-buildpack/blob/master/docs/example-java_main.md -## Building and running with Docker +## Building and running the application using docker and docker-compose + +The maven build for this project integrates with Docker using the [Spotify Maven plugin](https://github.com/spotify/docker-maven-plugin). You need to have Docker installed and configured. See [Installing Docker](https://docs.docker.com/installation/). + +In order to build a docker image: +``` +mvn package +``` + +You can customize the Docker Hub user for your image (by default it will create chanezon/spring-doge) in spring-doge/pom.xml. + +Then to run the app: +``` +docker-compose -f spring-doge/target/docker-compose.yml up +``` + +## Old Building and running with Docker You can use STS or a locally installation of maven to build spring-doge. However, if you need to build that on a new machine where you don't have all your development environment setup, you can build it with the maven Docker container. @@ -23,7 +39,7 @@ This will create the spring-doge jar file in target. Then, you can build a container for the app and run the app and a Mongodb database in containers with the following commands: ``` -docker build -t chanezon/spring-doge . +docker build -t foo/spring-doge . docker-compose up ``` diff --git a/pom.xml b/pom.xml index 5861ba9..ce1cba0 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 1.2.0.M1 + 1.3.0.M2 io.spring.doge spring-doge-parent diff --git a/spring-doge/pom.xml b/spring-doge/pom.xml index b454636..e5c4451 100644 --- a/spring-doge/pom.xml +++ b/spring-doge/pom.xml @@ -1,75 +1,130 @@ - 4.0.0 - - io.spring.doge - spring-doge-parent - 0.0.1-SNAPSHOT - + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + + io.spring.doge + spring-doge-parent + 0.0.1-SNAPSHOT + jar - spring-doge - spring-doge - - ${basedir}/.. - - - - org.springframework.boot - spring-boot-starter-cloud - - - ${project.groupId} - spring-doge-photo - ${project.version} - - - ${project.groupId} - spring-doge-web - ${project.version} - - - com.codahale.metrics - metrics-graphite - - - org.springframework.boot - spring-boot-starter-remote-shell - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-data-mongodb - - - org.springframework.boot - spring-boot-starter-websocket - - - org.apache.httpcomponents - httpcore - 4.3.1 - - - org.springframework.boot - spring-boot-starter-test - test - - - - spring-doge - - - org.springframework.boot - spring-boot-maven-plugin - - - + spring-doge + spring-doge + + chanezon + ${basedir}/.. + + + + + ${project.groupId} + spring-doge-photo + ${project.version} + + + ${project.groupId} + spring-doge-web + ${project.version} + + + io.dropwizard.metrics + metrics-graphite + ${dropwizard-metrics.version} + + + org.springframework.boot + spring-boot-starter-remote-shell + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-data-mongodb + + + org.springframework.boot + spring-boot-starter-websocket + + + org.apache.httpcomponents + httpcore + 4.3.1 + + + org.springframework.boot + spring-boot-starter-test + test + + + + spring-doge + + + src/main/docker + true + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + com.spotify + docker-maven-plugin + 0.2.12 + + + package + + build + + + + + ${docker.image.prefix}/${project.artifactId} + ${project.basedir}/src/main/docker + + + / + ${project.build.directory} + ${project.build.finalName}.jar + + + + + + maven-resources-plugin + 2.7 + + + copy-resources + + package + + copy-resources + + + ${basedir}/target + + + ${project.basedir}/src/main/docker + *.yml + true + + + + + + + + + diff --git a/spring-doge/src/main/docker/Dockerfile b/spring-doge/src/main/docker/Dockerfile new file mode 100644 index 0000000..64137d8 --- /dev/null +++ b/spring-doge/src/main/docker/Dockerfile @@ -0,0 +1,9 @@ +FROM java:8 + +MAINTAINER Patrick Chanezon + +EXPOSE 8080 + +WORKDIR /usr/src +ADD spring-doge.jar app.jar +CMD java -Dserver.port=8080 -Dspring.data.mongodb.uri=$MONGODB_URI -jar app.jar diff --git a/spring-doge/src/main/docker/docker-compose.yml b/spring-doge/src/main/docker/docker-compose.yml new file mode 100644 index 0000000..b0b1b97 --- /dev/null +++ b/spring-doge/src/main/docker/docker-compose.yml @@ -0,0 +1,10 @@ +mongo: + image: mongo + +web: + image: ${docker.image.prefix}/${project.artifactId} + ports: + - "8080:8080" + links: ["mongo"] + environment: + - MONGODB_URI=mongodb://mongo:27017/test From 3e3c9489739298c34dba79f4d9fb97276338d696 Mon Sep 17 00:00:00 2001 From: Patrick Chanezon Date: Mon, 4 Apr 2016 18:02:04 -0700 Subject: [PATCH 2/9] added a dockerfile for dev and one for autobuild --- Dockerfile | 8 ++++---- Dockerfile.dev | 9 +++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 Dockerfile.dev diff --git a/Dockerfile b/Dockerfile index a79df60..4811edc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ -FROM java:8 +FROM maven:3-jdk-8 MAINTAINER Patrick Chanezon EXPOSE 8080 - -COPY spring-doge/target/*.jar /usr/src/spring-doge/spring-doge.jar WORKDIR /usr/src/spring-doge -CMD java -Dserver.port=8080 -Dspring.data.mongodb.uri=$MONGODB_URI -jar spring-doge.jar \ No newline at end of file +COPY . /usr/src/spring-doge +RUN mvn install && cp spring-doge/target/*.jar spring-doge.jar && rm -rf /root/.m2/* +CMD java -Dserver.port=8080 -Dspring.data.mongodb.uri=$MONGODB_URI -jar spring-doge.jar diff --git a/Dockerfile.dev b/Dockerfile.dev new file mode 100644 index 0000000..a79df60 --- /dev/null +++ b/Dockerfile.dev @@ -0,0 +1,9 @@ +FROM java:8 + +MAINTAINER Patrick Chanezon + +EXPOSE 8080 + +COPY spring-doge/target/*.jar /usr/src/spring-doge/spring-doge.jar +WORKDIR /usr/src/spring-doge +CMD java -Dserver.port=8080 -Dspring.data.mongodb.uri=$MONGODB_URI -jar spring-doge.jar \ No newline at end of file From 115a2c06321fceb35755b215b2c3f8fd61813f58 Mon Sep 17 00:00:00 2001 From: Patrick Chanezon Date: Tue, 5 Apr 2016 13:23:41 -0700 Subject: [PATCH 3/9] changed client --- spring-doge-web/src/main/resources/templates/client.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-doge-web/src/main/resources/templates/client.html b/spring-doge-web/src/main/resources/templates/client.html index 8031709..4780b01 100644 --- a/spring-doge-web/src/main/resources/templates/client.html +++ b/spring-doge-web/src/main/resources/templates/client.html @@ -19,7 +19,7 @@
-

Upload an Image

+

Upload an Image and have fun!

Open the monitor page From 9cb13419c9787c753558db6b21f51bc29d66b992 Mon Sep 17 00:00:00 2001 From: Patrick Chanezon Date: Tue, 5 Apr 2016 15:21:51 -0700 Subject: [PATCH 4/9] changed dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4811edc..564b414 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,5 +5,5 @@ MAINTAINER Patrick Chanezon EXPOSE 8080 WORKDIR /usr/src/spring-doge COPY . /usr/src/spring-doge -RUN mvn install && cp spring-doge/target/*.jar spring-doge.jar && rm -rf /root/.m2/* +RUN mvn install && cp spring-doge/target/*.jar spring-doge.jar CMD java -Dserver.port=8080 -Dspring.data.mongodb.uri=$MONGODB_URI -jar spring-doge.jar From 8c1051a828be2365543e9c04a2d4b33db66626a1 Mon Sep 17 00:00:00 2001 From: Patrick Chanezon Date: Mon, 18 Apr 2016 18:05:54 +0200 Subject: [PATCH 5/9] removed dockeri n maven, added composefile for launching ide --- docker-compose.dev.yml | 13 +++++++++++++ spring-doge/pom.xml | 24 ------------------------ 2 files changed, 13 insertions(+), 24 deletions(-) create mode 100644 docker-compose.dev.yml diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 0000000..ecd0356 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,13 @@ +web: + image: chanezon/sts:3.7.5 + volumes: + - ./..:/workspace + - maven:/root/.m2 + ports: + - "8080:8080" + links: ["mongo"] + environment: + - DISPLAY=$DISPLAY_MAC + - MONGODB_URI=mongodb://mongo:27017/test +mongo: + image: mongo diff --git a/spring-doge/pom.xml b/spring-doge/pom.xml index e5c4451..1d61211 100644 --- a/spring-doge/pom.xml +++ b/spring-doge/pom.xml @@ -76,30 +76,6 @@ org.springframework.boot spring-boot-maven-plugin - - com.spotify - docker-maven-plugin - 0.2.12 - - - package - - build - - - - - ${docker.image.prefix}/${project.artifactId} - ${project.basedir}/src/main/docker - - - / - ${project.build.directory} - ${project.build.finalName}.jar - - - - maven-resources-plugin 2.7 From 93cda4c645a72a945d9f104ef4e9a8b5033e782d Mon Sep 17 00:00:00 2001 From: Patrick Chanezon Date: Tue, 19 Apr 2016 16:09:19 +0200 Subject: [PATCH 6/9] changed base image --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 564b414..abdfa5e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM maven:3-jdk-8 +FROM java:8 MAINTAINER Patrick Chanezon From 7d7a038ba2f473da19b151f3e772ecd18904c2f1 Mon Sep 17 00:00:00 2001 From: Patrick Chanezon Date: Tue, 10 May 2016 17:51:42 -0700 Subject: [PATCH 7/9] Dockerfile for build --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index abdfa5e..564b414 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM java:8 +FROM maven:3-jdk-8 MAINTAINER Patrick Chanezon From bb1e3657b16800104306691bab729190d28b0160 Mon Sep 17 00:00:00 2001 From: Patrick Chanezon Date: Wed, 11 May 2016 11:07:59 -0700 Subject: [PATCH 8/9] added different compose files --- docker-compose.prod.yml | 12 ++++++++++++ docker-compose.dev.yml => docker-compose.run.yml | 6 +----- docker-compose.yml | 8 ++++++-- 3 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 docker-compose.prod.yml rename docker-compose.dev.yml => docker-compose.run.yml (54%) diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..9448a50 --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,12 @@ +web: + image: chanezon/spring-doge + ports: + - 8080 + links: ["mongo"] + environment: + - MONGODB_URI=mongodb://mongo:27017/test + labels: + - "interlock.hostname=spring-doge" + - "interlock.domain=chanezon.com" +mongo: + image: mongo diff --git a/docker-compose.dev.yml b/docker-compose.run.yml similarity index 54% rename from docker-compose.dev.yml rename to docker-compose.run.yml index ecd0356..25c748c 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.run.yml @@ -1,13 +1,9 @@ web: - image: chanezon/sts:3.7.5 - volumes: - - ./..:/workspace - - maven:/root/.m2 + image: chanezon/spring-doge ports: - "8080:8080" links: ["mongo"] environment: - - DISPLAY=$DISPLAY_MAC - MONGODB_URI=mongodb://mongo:27017/test mongo: image: mongo diff --git a/docker-compose.yml b/docker-compose.yml index 25c748c..51c2ded 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,9 +1,13 @@ web: - image: chanezon/spring-doge + image: chanezon/sts:3.7.5 + volumes: + - ./..:/workspace + - maven:/root/.m2 ports: - - "8080:8080" + - "8090:8080" links: ["mongo"] environment: + - DISPLAY=$DISPLAY_MAC - MONGODB_URI=mongodb://mongo:27017/test mongo: image: mongo From 7817c240fe5e5cffd085e20b3e4980f839423bce Mon Sep 17 00:00:00 2001 From: Patrick Chanezon Date: Tue, 17 May 2016 13:50:28 -0500 Subject: [PATCH 9/9] changed readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cdea78a..0be77ff 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # Spring Doge - Such Boot! + ``` cf push -p target/demo-0.0.1-SNAPSHOT.jar -b https://github.com/cloudfoundry/java-buildpack.git doge