FROM node:18-alpine AS build
ADD . /src/
WORKDIR /src

ENV GENERATE_SOURCEMAP false
ENV NODE_OPTIONS="--max_old_space_size=4096"

RUN yarn install --network-timeout 300000 \
    && yarn -cwd scripts merge-i18n -s src/themes/gi/assets/i18n \
    && yarn build:prod \
    && mkdir /app \
    && mv /src/dist /app/ \
    && mv /src/config /app/config \
    && rm -rf /src \
    && chown -R node:node /app

FROM node:18-alpine
COPY --from=build --chown=node /app /app
WORKDIR /app
EXPOSE 4000
USER node
ENV NODE_ENV production
ENV NODE_OPTIONS="--max_old_space_size=4096"
USER root
RUN npm install pm2@latest -g