# pull official base image FROM node:14.17.3-buster AS builder RUN npm i -g npm@7.20.0 # set working directory WORKDIR /app COPY ./package.json ./package.json # Fix for heap limit allocation issue ENV NODE_OPTIONS="--max-old-space-size=4096" # Build plugins COPY ./plugins/package.json ./plugins/package-lock.json ./plugins/ RUN npm --prefix plugins install COPY ./plugins/ ./plugins/ RUN NODE_ENV=production npm --prefix plugins run build RUN npm --prefix plugins prune --production # Build frontend COPY ./frontend/package.json ./frontend/package-lock.json ./frontend/ RUN npm --prefix frontend install COPY ./frontend ./frontend RUN SERVE_CLIENT=false npm --prefix frontend run build --production RUN npm --prefix frontend prune --production FROM openresty/openresty:1.19.9.1rc1-buster-fat RUN apt-get update && apt-get -y install --no-install-recommends wget \ gnupg ca-certificates apt-utils curl luarocks \ make build-essential g++ gcc autoconf RUN luarocks install lua-resty-auto-ssl RUN mkdir /etc/resty-auto-ssl /var/log/openresty /var/www /etc/fallback-certs COPY --from=builder /app/frontend/build /var/www COPY ./frontend/config/nginx.conf.template /etc/openresty/nginx.conf.template COPY ./frontend/config/entrypoint.sh /entrypoint.sh RUN chgrp -R 0 /var/www && chmod -R g=u /var/www ENTRYPOINT ["./entrypoint.sh"]