40 lines
641 B
Docker
40 lines
641 B
Docker
##
|
|
## Stage 1: Build the API
|
|
##
|
|
FROM node:lts-alpine AS api-build
|
|
|
|
WORKDIR /src
|
|
COPY ./api .
|
|
|
|
RUN npm install
|
|
RUN npx tsc --outDir /dist
|
|
|
|
##
|
|
## Stage 2: Build the UI
|
|
##
|
|
FROM node:lts-alpine AS ui-build
|
|
|
|
WORKDIR /app
|
|
COPY ./ui .
|
|
|
|
RUN npm install
|
|
RUN npx ng build --output-path /dist
|
|
|
|
##
|
|
## Stage 3: Build Runtime
|
|
##
|
|
FROM node:lts-alpine AS runtime
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy build artifacts from the api-build stage
|
|
COPY --from=api-build /dist .
|
|
COPY --from=api-build /src/node_modules ./node_modules
|
|
|
|
# Copy build artifacts from the ui-build stage
|
|
COPY --from=ui-build /dist ./ui/dist/genwealth-advisor-ui
|
|
|
|
EXPOSE 8080
|
|
|
|
CMD ["node", "index.js"]
|