2024-10-31 18:17:58 +00:00
|
|
|
FROM node:lts-slim
|
2024-10-30 16:24:34 +00:00
|
|
|
|
2024-11-04 10:15:00 +00:00
|
|
|
# Install wget for healthcheck
|
|
|
|
RUN apt-get update && \
|
|
|
|
apt-get install -y wget && \
|
|
|
|
apt-get clean && \
|
|
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
|
2024-10-30 16:24:34 +00:00
|
|
|
WORKDIR /app
|
|
|
|
|
2024-11-03 10:22:38 +00:00
|
|
|
COPY app/ ./
|
2024-11-01 07:55:54 +00:00
|
|
|
|
2024-11-02 21:18:04 +00:00
|
|
|
RUN npm install pm2 -g
|
2024-10-30 16:24:34 +00:00
|
|
|
|
2024-11-03 10:22:38 +00:00
|
|
|
RUN chown -R node:node /app
|
|
|
|
|
|
|
|
USER node
|
|
|
|
|
|
|
|
RUN npm install --omit=dev
|
2024-10-30 16:24:34 +00:00
|
|
|
|
2024-11-03 14:19:12 +00:00
|
|
|
ARG PACKAGE_VERSION
|
|
|
|
ENV APP_VERSION=${PACKAGE_VERSION}
|
2024-11-01 18:02:31 +00:00
|
|
|
ENV NODE_ENV=production
|
|
|
|
|
2024-11-01 07:55:54 +00:00
|
|
|
# Build without type checking, as we have removed the Typescript
|
2024-11-03 19:28:37 +00:00
|
|
|
# dev-dependencies above to save space in the final build.
|
|
|
|
# Type checking is done in the repo before building the image.
|
2024-11-01 07:55:54 +00:00
|
|
|
RUN npx tsc --noCheck
|
2024-10-30 16:24:34 +00:00
|
|
|
|
2024-11-04 10:15:00 +00:00
|
|
|
HEALTHCHECK --interval=30s --start-period=10s --timeout=5s CMD wget -q http://localhost:3000/healthcheck || exit 1
|
2024-11-02 22:13:32 +00:00
|
|
|
|
2024-11-02 21:18:04 +00:00
|
|
|
CMD ["pm2-runtime", "dist/index.js" ]
|