mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-27 17:16:14 +01:00
* ci: multi-platform build * ci: remove riscv as node doesn't support it * ci: correct step name it's no longer logging in to docker hub * ci: remove less common architectures * ci: github actions cache for docker builds * fix: use `--omit` flag to actually avoid installing dev dependencies * feat: two-stage build * feat: add platform-specific rebuild * fix: run install if target arch is different from build arch * fix: whitespace * fix: correct build order * fix: remove unnecessary conditional * fix: remove unnecessary platofm specifier * fix: correct copy
42 lines
758 B
Docker
42 lines
758 B
Docker
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
|
|
|
|
|
|
FROM node:lts
|
|
|
|
RUN mkdir -p /usr/src/app && \
|
|
chown -R node:node /usr/src/app
|
|
WORKDIR /usr/src/app
|
|
|
|
ARG NODE_ENV
|
|
ENV NODE_ENV $NODE_ENV
|
|
|
|
COPY --chown=node:node --from=npm /usr/src/build /usr/src/app
|
|
|
|
USER node
|
|
|
|
RUN npm rebuild && \
|
|
npm cache clean --force
|
|
|
|
COPY --chown=node:node . /usr/src/app
|
|
|
|
ENV NODE_ENV=production \
|
|
daemon=false \
|
|
silent=false
|
|
|
|
EXPOSE 4567
|
|
|
|
CMD test -n "${SETUP}" && ./nodebb setup || node ./nodebb build; node ./nodebb start
|