# --------------- # Install Dependencies # --------------- FROM node:16-stretch-slim as builder ADD https://github.com/krallin/tini/releases/download/v0.19.0/tini-static-armel /tini ADD https://github.com/krallin/tini/releases/download/v0.19.0/tini-static-armel.asc /tini.asc RUN chmod +x /tini WORKDIR /RTL COPY package.json /RTL/package.json COPY package-lock.json /RTL/package-lock.json RUN npm install # --------------- # Build App # --------------- COPY . . # Build the Angular application RUN npm run buildfrontend # Build the Backend from typescript server RUN npm run buildbackend # Remove non production necessary modules RUN npm prune --production # --------------- # Release App # --------------- FROM arm32v7/node:16-stretch-slim as runner WORKDIR /RTL COPY --from=builder /RTL/rtl.js ./rtl.js COPY --from=builder /RTL/package.json ./package.json COPY --from=builder /RTL/frontend ./frontend COPY --from=builder /RTL/backend ./backend COPY --from=builder /RTL/node_modules/ ./node_modules COPY --from=builder "/tini" /sbin/tini EXPOSE 3000 ENTRYPOINT ["/sbin/tini", "-g", "--"] CMD ["node", "rtl"]