diff --git a/client/wfprev-war/Dockerfile b/client/wfprev-war/Dockerfile index 168851f8..0b6d10d1 100644 --- a/client/wfprev-war/Dockerfile +++ b/client/wfprev-war/Dockerfile @@ -1,54 +1,39 @@ -# Use an official Tomcat image with JDK 8 -FROM tomcat:9.0.91-jdk17 - -#Install at very top layer to ease caching issues for devs -RUN apt-get -y update &&\ - apt-get install -y unzip - -ARG CONTAINER_NAME=wfprev-war - -ENV CATALINA_HOME /usr/local/tomcat - -# Define build arguments -ARG WAR_FILE=*.war -ARG CONTAINER_NAME - -# Add the application's war to the container and rename it to pub#.war -ADD ${WAR_FILE} . - -# Copy the context.xml.template template and other configuration files -# COPY docker-files/server.xml $CATALINA_HOME/conf/ - -# Create the tomcat user and group, and set permissions -# TEMPNAME step is to remove "-war" from the path -RUN rm -rf /usr/local/tomcat/webapps/ROOT &&\ - for i in $(ls *.war) ; \ - do \ - export TEMPNAME="$(echo $i | sed 's/(.*)((-api)|(-war))-.*/\1\3/' -r)" &&\ - unzip $i -d /usr/local/tomcat/webapps/pub#$TEMPNAME ; \ - done &&\ - addgroup --system tomcat &&\ - adduser --system --ingroup tomcat tomcat &&\ - chown -R tomcat:tomcat `readlink -f ${CATALINA_HOME}` &&\ - chmod -R 770 `readlink -f ${CATALINA_HOME}` &&\ - chown -h tomcat:tomcat ${CATALINA_HOME} &&\ - mkdir -p /usr/local/tomcat/temp &&\ - mkdir -p /usr/local/tomcat/logs/wfhr &&\ - mkdir -p /${CATALINA_HOME}/webapps/pub#${CONTAINER_NAME} &&\ - chown -R tomcat:tomcat /usr/local/tomcat/logs/wfhr &&\ - chmod 766 /usr/local/tomcat/logs &&\ - chmod 766 /usr/local/tomcat/logs/wfhr &&\ - chmod 766 /usr/local/tomcat/work &&\ - chmod 766 /usr/local/tomcat/temp &&\ - chmod 766 /${CATALINA_HOME}/webapps/pub#${CONTAINER_NAME} &&\ - echo org.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.EnvironmentPropertySource >> /usr/local/tomcat/conf/catalina.properties - -VOLUME /usr/local/tomcat/logs /usr/local/tomcat/work /usr/local/tomcat/temp - -# Expose the ports -EXPOSE 8080 8000 - -USER tomcat - -# Run the Tomcat server with JPDA settings for remote debugging -CMD ["catalina.sh", "run"] \ No newline at end of file +#Step 1: Build the Angular app +FROM node:18 AS build + +WORKDIR /src/main/angular + +# Add NPM Token from build arguments for private registry authentication +# ARG NPM_TOKEN +# ARG PRIVATE_REGISTRY_AUTH +# RUN echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc +# RUN echo "//bwa.nrs.gov.bc.ca/int/artifactory/api/npm/nrs-virtual-npm/:_auth=${PRIVATE_REGISTRY_AUTH}" >> .npmrc + +# Copy the package.json and package-lock.json files +COPY src/main/angular/package*.json ./ + +# Clean the npm cache before installing dependencies +RUN npm cache clean --force + +# Remove node_modules and package-lock.json if they exist (optional cleanup) +RUN rm -rf node_modules package-lock.json + +# Install npm dependencies +RUN npm install + +# Copy the rest of the Angular project files +COPY src/main/angular ./ + +# Build the Angular project (use --configuration=production instead of --prod) +RUN npm run build --configuration=production + +# Step 2: Serve the app with nginx +FROM nginx:alpine + +# Copy the built Angular app to Nginx +COPY --from=build /src/main/angular/dist/wfprev/* /usr/share/nginx/html +# Expose port 80 +EXPOSE 80 + +# Start Nginx server +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file