FROM adoptopenjdk/openjdk11:jdk-11.0.10_9-debian AS builder ARG config_file ARG module COPY src /app/src COPY connector-app /app/connector-app COPY connector-core /app/connector-core COPY connector-model /app/connector-model COPY $module /app/$module COPY $config_file /app/config.yaml COPY gradle /app/gradle COPY build.gradle settings.gradle gradlew /app/ WORKDIR /app/ RUN ./gradlew assemble FROM adoptopenjdk/openjdk11:jdk-11.0.10_9-debian AS unitTest COPY . /app/ WORKDIR /app RUN ./gradlew unitTest FROM adoptopenjdk/openjdk11:jdk-11.0.10_9-debian AS integrationTest COPY . /app/ WORKDIR /app RUN ./gradlew integrationTest FROM adoptopenjdk/openjdk11:jre-11.0.10_9-alpine AS production ENV port 8080 WORKDIR /app COPY --from=builder /app/bin/libs /app/bin COPY --from=builder /app/config.yaml /app/ EXPOSE $port CMD java -cp "bin/*" io.connector.Main -cf config.yaml -p $port