2023-04-28 19:00:34 +02:00
|
|
|
FROM --platform=$BUILDPLATFORM node:lts as npm
|
|
|
|
|
|
|
|
|
|
RUN mkdir -p /usr/src/build && \
|
|
|
|
|
chown -R node:node /usr/src/build
|
|
|
|
|
WORKDIR /usr/src/build
|
|
|
|
|
|
|
|
|
|
ARG NODE_ENV
|
|
|
|
|
ENV NODE_ENV $NODE_ENV
|
|
|
|
|
|
|
|
|
|
COPY --chown=node:node install/package.json /usr/src/build/package.json
|
|
|
|
|
|
|
|
|
|
USER node
|
|
|
|
|
|
|
|
|
|
RUN npm install --omit=dev
|
|
|
|
|
|
2023-11-12 19:38:00 +01:00
|
|
|
FROM node:lts as rebuild
|
2023-04-28 19:00:34 +02:00
|
|
|
|
2023-11-12 19:38:00 +01:00
|
|
|
ARG BUILDPLATFORM
|
|
|
|
|
ARG TARGETPLATFORM
|
|
|
|
|
|
|
|
|
|
RUN mkdir -p /usr/src/build && \
|
|
|
|
|
chown -R node:node /usr/src/build
|
|
|
|
|
|
|
|
|
|
COPY --from=npm /usr/src/build /usr/src/build
|
|
|
|
|
|
|
|
|
|
RUN if [ $BUILDPLATFORM != $TARGETPLATFORM ]; then \
|
|
|
|
|
npm rebuild && \
|
|
|
|
|
npm cache clean --force; fi
|
|
|
|
|
|
|
|
|
|
FROM node:lts-slim as run
|
|
|
|
|
|
|
|
|
|
ARG NODE_ENV
|
|
|
|
|
ENV NODE_ENV=$NODE_ENV \
|
|
|
|
|
daemon=false \
|
|
|
|
|
silent=false
|
2017-11-03 11:18:35 -04:00
|
|
|
|
2021-10-18 23:09:40 +02:00
|
|
|
RUN mkdir -p /usr/src/app && \
|
|
|
|
|
chown -R node:node /usr/src/app
|
2017-11-03 11:18:35 -04:00
|
|
|
|
2023-11-12 19:38:00 +01:00
|
|
|
COPY --chown=node:node --from=rebuild /usr/src/build /usr/src/app
|
2019-10-23 00:23:12 +08:00
|
|
|
|
2021-10-18 23:09:40 +02:00
|
|
|
|
2023-11-12 19:38:00 +01:00
|
|
|
WORKDIR /usr/src/app
|
2019-10-23 00:23:12 +08:00
|
|
|
|
2023-11-12 19:38:00 +01:00
|
|
|
USER node
|
2021-10-18 23:09:40 +02:00
|
|
|
|
|
|
|
|
COPY --chown=node:node . /usr/src/app
|
2015-05-21 01:10:56 +02:00
|
|
|
|
2019-10-23 00:23:12 +08:00
|
|
|
EXPOSE 4567
|
2023-11-12 19:38:00 +01:00
|
|
|
VOLUME ["/usr/src/app/node_modules", "/usr/src/app/build", "/usr/src/app/public/uploads", "/opt/config"]
|
|
|
|
|
ENTRYPOINT ["./install/docker/entrypoint.sh"]
|