BREAKING CHANGE: This release replaces `PublicAPIRouter` with `PagesRouter` (Deprecation DEPPS11).
52 lines
1.2 KiB
Docker
52 lines
1.2 KiB
Docker
############################################################
|
|
# Build stage
|
|
############################################################
|
|
FROM node:20.19.0-alpine3.20 AS build
|
|
|
|
RUN apk --no-cache add \
|
|
build-base \
|
|
git \
|
|
python3
|
|
|
|
WORKDIR /tmp
|
|
|
|
# Copy package.json first to benefit from layer caching
|
|
COPY package*.json ./
|
|
|
|
# Copy src to have config files for install
|
|
COPY . .
|
|
|
|
# Install without scripts
|
|
RUN npm ci --omit=dev --ignore-scripts \
|
|
# Copy production node_modules aside for later
|
|
&& cp -R node_modules prod_node_modules \
|
|
# Install all dependencies
|
|
&& npm ci \
|
|
# Run build steps
|
|
&& npm run build
|
|
|
|
############################################################
|
|
# Release stage
|
|
############################################################
|
|
FROM node:20.19.0-alpine3.20 AS release
|
|
|
|
VOLUME /parse-server/cloud /parse-server/config
|
|
|
|
WORKDIR /parse-server
|
|
|
|
# Copy build stage folders
|
|
COPY --from=build /tmp/prod_node_modules /parse-server/node_modules
|
|
COPY --from=build /tmp/lib lib
|
|
|
|
COPY package*.json ./
|
|
COPY bin bin
|
|
COPY public public
|
|
COPY views views
|
|
RUN mkdir -p logs && chown -R node: logs
|
|
|
|
ENV PORT=1337
|
|
USER node
|
|
EXPOSE $PORT
|
|
|
|
ENTRYPOINT ["node", "./bin/parse-server"]
|