Skip to content

Commit 0ea6518

Browse files
authored
maven containers for build processes (#3)
1 parent 3410f63 commit 0ea6518

6 files changed

Lines changed: 99 additions & 2 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ hs_err_pid*
2525

2626
/target/
2727

28+
.m2/
29+
2830
# DataDir Volumes causing permissions issues
2931
docker/mysql/datadir/*
3032
!docker/mysql/datadir/test.txt

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@
7575
- MySQL Driver
7676
- Spring web
7777

78+
## Building the projects in Maven containers -
79+
1. To build the productservice app, execute [docker-compose run --rm mvn-product clean package -DskipTests]
80+
2. To build the couponservice app, execute [docker-compose run --rm mvn-coupon clean package -DskipTests]
81+
82+
7883
## Postman calls to create Coupon & Products
7984
- Create a coupon
8085
{
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
FROM openjdk:11
2+
3+
# ARGUMENTS
4+
ARG MAVEN_VERSION=3.6.3
5+
ARG USER_HOME_DIR="/root"
6+
ARG SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
7+
ARG BASE_URL=https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries
8+
9+
# MAVEN
10+
RUN mkdir -p .m2 \
11+
&& mkdir -p /usr/share/maven /usr/share/maven/ref \
12+
&& curl -fsSL -o /tmp/apache-maven.tar.gz ${BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz \
13+
&& echo "${SHA} /tmp/apache-maven.tar.gz" | sha512sum -c - \
14+
&& tar -xzf /tmp/apache-maven.tar.gz -C /usr/share/maven --strip-components=1 \
15+
&& rm -f /tmp/apache-maven.tar.gz \
16+
&& ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
17+
18+
# ENVIRONMENT
19+
ENV MAVEN_HOME /usr/share/maven
20+
ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2"
21+
ENV PATH="$JAVA_HOME/bin:$MAVEN_HOME:${PATH}"
22+
23+
ENTRYPOINT [ "mvn" ]
24+
#CMD exec /bin/bash -c "trap : TERM INT; sleep infinity & wait"

docker-compose.yml

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,48 @@
11
version: "2.4"
22

33
services:
4+
mvn-coupon:
5+
build:
6+
context: .
7+
dockerfile: ./couponservice/docker/maven/Dockerfile
8+
container_name: mvn-coupon
9+
platform: linux
10+
isolation: default
11+
mem_limit: 2G
12+
mem_reservation: 2G
13+
environment:
14+
- TZ=America/Chicago
15+
- LC_ALL=en_US
16+
- JAVA_OPTS=-Xmx2g -Xms2g
17+
- MAVEN_OPTS=-Xmx2g -Xms2g
18+
volumes:
19+
- .m2:/root/.m2
20+
- ./couponservice:/repo
21+
working_dir: /repo
22+
entrypoint: mvn -B
23+
command: clean install
24+
25+
mvn-product:
26+
build:
27+
context: .
28+
dockerfile: ./productservice/docker/maven/Dockerfile
29+
container_name: mvn-product
30+
platform: linux
31+
isolation: default
32+
mem_limit: 2G
33+
mem_reservation: 2G
34+
environment:
35+
- TZ=America/Chicago
36+
- LC_ALL=en_US
37+
- JAVA_OPTS=-Xmx2g -Xms2g
38+
- MAVEN_OPTS=-Xmx2g -Xms2g
39+
volumes:
40+
- .m2:/root/.m2
41+
- ./productservice:/repo
42+
working_dir: /repo
43+
entrypoint: mvn -B
44+
command: clean install
45+
446
web-db:
547
image: mysql:5.6
648
container_name: web-db
@@ -25,7 +67,7 @@ services:
2567
coupon-app:
2668
build:
2769
context: .
28-
dockerfile: ./couponservice/Dockerfile
70+
dockerfile: ./couponservice/docker/service/Dockerfile
2971
environment:
3072
- TZ=America/Chicago
3173
container_name: coupon-app
@@ -39,7 +81,7 @@ services:
3981
product-app:
4082
build:
4183
context: .
42-
dockerfile: ./productservice/Dockerfile
84+
dockerfile: ./productservice/docker/service/Dockerfile
4385
container_name: product-app
4486
mem_limit: 1G
4587
mem_reservation: 1G
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
FROM openjdk:11
2+
3+
# ARGUMENTS
4+
ARG MAVEN_VERSION=3.6.3
5+
ARG USER_HOME_DIR="/root"
6+
ARG SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
7+
ARG BASE_URL=https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries
8+
9+
# MAVEN
10+
RUN mkdir -p .m2 \
11+
&& mkdir -p /usr/share/maven /usr/share/maven/ref \
12+
&& curl -fsSL -o /tmp/apache-maven.tar.gz ${BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz \
13+
&& echo "${SHA} /tmp/apache-maven.tar.gz" | sha512sum -c - \
14+
&& tar -xzf /tmp/apache-maven.tar.gz -C /usr/share/maven --strip-components=1 \
15+
&& rm -f /tmp/apache-maven.tar.gz \
16+
&& ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
17+
18+
# ENVIRONMENT
19+
ENV MAVEN_HOME /usr/share/maven
20+
ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2"
21+
ENV PATH="$JAVA_HOME/bin:$MAVEN_HOME:${PATH}"
22+
23+
ENTRYPOINT [ "mvn" ]
24+
#CMD exec /bin/bash -c "trap : TERM INT; sleep infinity & wait"

0 commit comments

Comments
 (0)