-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
43 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,43 @@ | ||
#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;"] | ||
# 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#<warname>.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"] |