educt-server/Dockerfile

30 lines
675 B
Docker

# syntax=docker/dockerfile:1
ARG NODE_IMAGE=node:17-alpine
FROM ${NODE_IMAGE} as base
RUN apk --no-cache add dumb-init
RUN mkdir -p /home/node/app && chown node:node /home/node/app
WORKDIR /home/node/app
USER node
RUN mkdir tmp
FROM base as dependencies
COPY --chown=node:none ./package*.json ./
RUN npm ci
COPY --chown=node:node . .
FROM dependencies as build
RUN node ace build --production --ignore-ts-errors
FROM base as production
ENV NODE_ENV=production
ENV PORT=3333
ENV HOST=0.0.0.0
COPY --chown=node:node ./package*.json ./
RUN npm ci --production
COPY --chown=node:node --from=build /home/node/app/build .
EXPOSE 3333
CMD [ "dumb-init", "node", "server.js" ]