SierraSystems/ntt-data-notification-service

View on GitHub
Dockerfile

Summary

Maintainability
Test Coverage

#############################################################################################
###              Stage where Docker is building spring boot app using maven               ###
#############################################################################################
FROM maven:3.6.3-jdk-8 as build

ARG PROXY_SET=false
ARG PROXY_HOST=
ARG PROXY_PORT=

# ARG MVN_PROFILES
ARG SERVICE_NAME

ENV SERVICE_NAME=${SERVICE_NAME}
# ENV MVN_PROFILES=${MVN_PROFILES}

WORKDIR ${SERVICE_NAME}

COPY pom.xml .
RUN mvn dependency:go-offline

COPY src src

RUN mvn -B clean package \
        -DproxySet=${PROXY_SET} \
        -DproxyHost=${PROXY_HOST} \
        -DproxyPort=${PROXY_PORT}


FROM node:13.12.0-alpine

# install dependencies
COPY package.json ./
COPY package-lock.json ./
RUN npm install

# RUN mvn -B clean package \
#         -DproxySet=${PROXY_SET} \
#         -DproxyHost=${PROXY_HOST} \
#         -DproxyPort=${PROXY_PORT} \
#         -P ${MVN_PROFILES}
#############################################################################################

#############################################################################################
### Stage where Docker is running a java process to run a service built in previous stage ###
#############################################################################################
FROM openjdk:8-jdk-slim

# ARG MVN_PROFILES
ARG SERVICE_NAME

COPY --from=build ${SERVICE_NAME}/target/${SERVICE_NAME}-*.jar /app/service.jar


CMD ["java", "-jar", "/app/service.jar"]
#############################################################################################