###################################################################################### ## ## buyilding-end install applications: ## ###################################################################################### FROM archlinux:base-devel AS builder # update system RUN pacman -Syu --noconfirm && pacman-db-upgrade \ && pacman -S --noconfirm jdk-openjdk maven npm \ && pacman -Scc --noconfirm ENV PATH /tmp/node_modules/.bin:$PATH WORKDIR /tmp ###################################################################################### ## ## Build back: ## ###################################################################################### FROM builder AS buildBack COPY back/pom.xml /tmp COPY back/src /tmp/src/ RUN mvn clean compile assembly:single ###################################################################################### ## ## Build front: ## ###################################################################################### FROM builder AS buildFront ADD front/package-lock.json \ front/package.json \ front/karma.conf.js \ front/protractor.conf.js \ /tmp/ # install and cache app dependencies RUN npm install ADD front/e2e \ front/tsconfig.json \ front/tslint.json \ front/angular.json \ /tmp/ ADD front/src /tmp/src # generate build RUN ng build --output-path=dist --configuration=production --base-href=/karso/ --deploy-url=/karso/ ###################################################################################### ## ## Production area: ## ###################################################################################### FROM bellsoft/liberica-openjdk-alpine:latest # add wget to manage the health check... RUN apk add --no-cache wget ENV LANG=C.UTF-8 COPY --from=buildBack /tmp/out/maven/*.jar /application/application.jar COPY --from=buildFront /tmp/dist /application/front/ WORKDIR /application/ EXPOSE 80 CMD ["java", "-Xms64M", "-Xmx1G", "-cp", "/application/application.jar", "org.kar.karso.WebLauncher"]