###################################################################################### ## ## 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 pnpm \ && 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 RUN echo "@kangaroo-and-rabbit:registry=https://gitea.atria-soft.org/api/packages/kangaroo-and-rabbit/npm/" > /root/.npmrc ADD front/package.json \ front/karma.conf.js \ front/protractor.conf.js \ /tmp/ # install and cache app dependencies RUN pnpm 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=/karusic/ --deploy-url=/karusic/ ###################################################################################### ## ## Production area: ## ###################################################################################### FROM bellsoft/liberica-openjdk-alpine:latest # add wget to manage the health check... RUN apk add --no-cache wget #FROM archlinux:base #RUN pacman -Syu --noconfirm && pacman-db-upgrade ## install package #RUN pacman -S --noconfirm jdk-openjdk wget ## intall npm #RUN pacman -S --noconfirm npm ## clean all the caches Need only on the release environment #RUN pacman -Scc --noconfirm 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.karusic.WebLauncher"]