FROM node:16.19.0-alpine

ARG use_colab_email
ARG node_env
ARG server_protocol
ARG server_host
ARG server_port
ARG client_protocol
ARG client_host
ARG client_port
ARG public_client_host
ARG public_client_protocol
ARG public_client_port
ARG flax_site_url


ENV USE_COLAB_EMAIL $use_colab_email
ENV NODE_ENV "production"
ENV SERVER_PROTOCOL "http"
ENV SERVER_HOST "localhost"
ENV SERVER_PORT "3000"
ENV CLIENT_PROTOCOL "http"
ENV CLIENT_HOST "0.0.0.0"
ENV CLIENT_PORT "4000"
ENV PUBLIC_CLIENT_HOST $public_client_host
ENV PUBLIC_CLIENT_PORT $public_client_port
ENV PUBLIC_CLIENT_PROTOCOL $public_client_protocol
ENV FLAX_SITE_URL $flax_site_url


RUN apk add --no-cache git python3 make g++ bash tar

WORKDIR /home/node/app

RUN mkdir ./uploads

COPY . .
RUN chown -R node:node .
ADD ./node_modules_dev.tar.gz .
RUN mv ./node_modules_dev ./node_modules && \
yarn webpack --config webpack/webpack.production.config.js

RUN cp -r /home/node/app/_build/assets/* /home/node/app/_build

VOLUME /home/node/app/uploads

ENTRYPOINT ["sh", "./scripts/setupProdServer.sh"]
CMD ["node", "./startServer.js"]
