Select Git revision
-
Benguria Elguezabal, Gorka authoredBenguria Elguezabal, Gorka authored
Dockerfile 2.27 KiB
FROM maven:3.8.1-jdk-11 as builder
WORKDIR /code
COPY pom.xml /code/pom.xml
# this does not seem to work as expected RUN mvn -Pprod,dev,api-docs dependency:resolve-plugins dependency:go-offline -B
# https://github.com/qaware/go-offline-maven-plugin proposes an alternative that seems to work better, but not perfectly as there are two dependencies taht I need to download manually
RUN \
mvn -DgroupId=org.glassfish.jaxb -DartifactId=jaxb-runtime -Dversion=2.3.3 dependency:get && \
mvn -DgroupId=org.jboss.logging -DartifactId=jboss-logging -Dversion=3.4.1.Final dependency:get && \
mvn -Pprod,api-docs de.qaware.maven:go-offline-maven-plugin:resolve-dependencies -B
COPY package.json /code/package.json
COPY package-lock.json /code/package-lock.json
RUN \
mvn -o -DnodeVersion=v14.17.6 -DnpmVersion=7.23.0 -Pprod,api-docs com.github.eirslett:frontend-maven-plugin:install-node-and-npm com.github.eirslett:frontend-maven-plugin:npm -Dmaven.test.skip=true
COPY webpack /code/webpack
COPY src/main/webapp /code/src/main/webapp
COPY tsconfig* /code/
COPY *.* /code/
COPY .* /code/
# https://pkg.go.dev/path/filepath#Match
RUN mvn -o generate-resources -Pprod,api-docs -Dmaven.test.skip=true
COPY [^Dockerfile]* /code/
# copy all except docker file
COPY src/main /code/src/main
COPY src /code/src
# copy remaining content on main and src
# https://github.com/eirslett/frontend-maven-plugin#skipping-execution
RUN mvn -o package spring-boot:repackage -Pprod,api-docs -DskipTests -Dskip.npm -Dskip.yarn -Dskip.bower -Dskip.grunt -Dskip.gulp -Dskip.jspm -Dskip.karma -Dskip.webpack && \
mv ./target/*.jar /frontend.jar
FROM adoptopenjdk:11-jre-hotspot
ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \
JAVA_OPTS="-Xmx512m -Xms256m" \
JHIPSTER_SLEEP=0 \
RUN_PROFILE=prod,api-docs,webapp
EXPOSE 8080
ARG EXTRA_CA_URL
RUN /bin/bash -c "[ -z $EXTRA_CA_URL ] || ( curl -s $EXTRA_CA_URL --output /ca.pem && keytool -import -noprompt -trustcacerts -alias ca -file /ca.pem -cacerts -storepass changeit )"
# to check if ca is installed keytool -list -cacerts -alias ca --storepass changeit
COPY --from=builder /frontend.jar .
CMD echo "The frontend will start in ${JHIPSTER_SLEEP}s..." && \
sleep $JHIPSTER_SLEEP && \
java $JAVA_OPTS -Dspring.profiles.active=$RUN_PROFILE -jar /frontend.jar