2023-07-27 04:31:45 -04:00
|
|
|
FROM node:20-alpine AS build
|
2017-09-24 15:44:49 -04:00
|
|
|
|
|
|
|
# Create app directory
|
|
|
|
WORKDIR /usr/src/app
|
|
|
|
|
2020-05-02 01:35:33 -04:00
|
|
|
# Install app dependencies and add source files
|
2022-10-12 20:02:14 -04:00
|
|
|
COPY package.json env.json yarn.lock tsconfig.json bundle.sh *.js *.mjs ./
|
2022-09-14 05:04:27 -04:00
|
|
|
COPY ./src ./src
|
|
|
|
RUN yarn install --frozen-lockfile && sh -e ./bundle.sh
|
2017-09-24 15:44:49 -04:00
|
|
|
|
2020-05-02 01:35:33 -04:00
|
|
|
# Second stage
|
2023-07-27 04:31:45 -04:00
|
|
|
FROM node:20-alpine
|
2020-05-02 01:35:33 -04:00
|
|
|
|
|
|
|
WORKDIR /usr/src/app
|
|
|
|
|
|
|
|
# Copy artifacts
|
2020-07-26 23:54:03 -04:00
|
|
|
COPY --from=build /usr/src/app/dist/ ./
|
2017-09-24 15:44:49 -04:00
|
|
|
|
2017-10-01 16:46:05 -04:00
|
|
|
RUN addgroup -S app -g 50000 && \
|
2018-01-20 00:11:52 -05:00
|
|
|
adduser -S -g app -u 50000 app && \
|
|
|
|
mkdir /data && chown app:app /data/
|
|
|
|
|
2017-10-01 16:46:05 -04:00
|
|
|
USER app
|
|
|
|
|
2020-05-02 01:35:33 -04:00
|
|
|
ENTRYPOINT [ "node", "server.js" ]
|