FROM archlinux:base-devel AS build ###################################################################################### ## ## buyilding-end install applications: ## ###################################################################################### # update system RUN pacman -Syu --noconfirm && pacman-db-upgrade # install package RUN pacman -S --noconfirm ant unzip wget openssh git gawk curl tar bash #install jdk-openjdk java-openjfx RUN pacman -S --noconfirm jdk-openjdk java-openjfx # intall maven & gradle RUN pacman -S --noconfirm maven gradle # intall npm RUN pacman -S --noconfirm npm # clean all the caches Need only on the release environment # RUN pacman -Scc --noconfirm ENV PATH_ROOT $PATH ###################################################################################### ## ## Build back: ## ###################################################################################### COPY back/pom.xml /tmp/back/ COPY back/src /tmp/back/src/ WORKDIR /tmp/back/ RUN mvn clean compile assembly:single ###################################################################################### ## ## Build front: ## ###################################################################################### ENV PATH /tmp/front/node_modules/.bin:$PATH_ROOT ADD front/package-lock.json /tmp/front/ ADD front/package.json /tmp/front/ ADD front/karma.conf.js /tmp/front/ ADD front/protractor.conf.js /tmp/front/ WORKDIR /tmp/front/ # install and cache app dependencies RUN npm install ADD front/e2e /tmp/sso/front ADD front/tsconfig.json /tmp/front/ ADD front/tslint.json /tmp/front/ ADD front/angular.json /tmp/front/ ADD front/src /tmp/front/src # generate build RUN ng build --output-path=dist --configuration=production --base-href=/karauth/ --deploy-url=/karauth/ ###################################################################################### ## ## Build sso: ## ###################################################################################### ENV PATH /tmp/sso/node_modules/.bin:$PATH_ROOT ADD sso/package-lock.json /tmp/sso/ ADD sso/package.json /tmp/sso/ ADD sso/karma.conf.js /tmp/sso/ ADD sso/protractor.conf.js /tmp/sso/ WORKDIR /tmp/sso/ # install and cache app dependencies RUN npm install ADD sso/e2e /tmp/sso/e2e ADD sso/tsconfig.json /tmp/sso/ ADD sso/tslint.json /tmp/sso/ ADD sso/angular.json /tmp/sso/ ADD sso/src /tmp/sso/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 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 RUN mkdir /application/ #copy REST API from back: COPY --from=build /tmp/back/out/maven/*.jar /application/application.jar # add front software: RUN mkdir /application/sso/ COPY --from=build /tmp/sso/dist /application/karso/ RUN mkdir /application/karauth/ COPY --from=build /tmp/front/dist /application/karauth/ WORKDIR /application/ EXPOSE 17080 CMD ["java", "-Xms64M", "-Xmx1G", "-cp", "/application/application.jar", "org.kar.oauth.WebLauncher"]