FROM node:18.16.0-alpine as build USER root ARG MAIL_HOST= \ MAIL_USERNAME= \ MAIL_PASSWORD= \ MAIL_PORT= \ MAIL_SECURE= \ MAIL_FROM_NAME= \ MAIL_FROM_ADDRESS= \ # Database DB_HOST= \ DB_USER= \ DB_PASSWORD= \ DB_CHARSET= \ # System database. SYSTEM_DB_NAME= \ SYSTEM_DB_PASSWORD= \ SYSTEM_DB_USER= \ SYSTEM_DB_HOST= \ SYSTEM_DB_CHARSET= \ # Tenant databases. TENANT_DB_USER= \ TENANT_DB_PASSWORD= \ TENANT_DB_HOST= \ TENANT_DB_NAME_PERFIX= \ TENANT_DB_CHARSET= \ # MongoDB MONGODB_DATABASE_URL= \ # Authentication JWT_SECRET= \ # Application BASE_URL= \ # Agendash AGENDASH_AUTH_USER=agendash \ AGENDASH_AUTH_PASSWORD=123123 \ # Sign-up restriction SIGNUP_DISABLED= \ SIGNUP_ALLOWED_DOMAINS= \ SIGNUP_ALLOWED_EMAILS= ENV MAIL_HOST=$MAIL_HOST \ MAIL_USERNAME=$MAIL_USERNAME \ MAIL_PASSWORD=$MAIL_PASSWORD \ MAIL_PORT=$MAIL_PORT \ MAIL_SECURE=$MAIL_SECURE \ MAIL_FROM_NAME=$MAIL_FROM_NAME \ MAIL_FROM_ADDRESS=$MAIL_FROM_ADDRESS \ # Database DB_HOST=$DB_HOST \ DB_USER=$DB_USER \ DB_PASSWORD=$DB_PASSWORD \ DB_CHARSET=$DB_CHARSET \ # System database. SYSTEM_DB_HOST=$SYSTEM_DB_HOST \ SYSTEM_DB_USER=$SYSTEM_DB_USER \ SYSTEM_DB_PASSWORD=$SYSTEM_DB_PASSWORD \ SYSTEM_DB_NAME=$SYSTEM_DB_NAME \ SYSTEM_DB_CHARSET=$SYSTEM_DB_CHARSET \ # Tenant databases. TENANT_DB_NAME_PERFIX=$TENANT_DB_NAME_PERFIX \ TENANT_DB_HOST=$TENANT_DB_HOST \ TENANT_DB_PASSWORD=$TENANT_DB_PASSWORD \ TENANT_DB_USER=$TENANT_DB_USER \ TENANT_DB_CHARSET=$TENANT_DB_CHARSET \ # Authentication JWT_SECRET=$JWT_SECRET \ # Agendash AGENDASH_AUTH_USER=$AGENDASH_AUTH_USER \ AGENDASH_AUTH_PASSWORD=$AGENDASH_AUTH_PASSWORD \ # MongoDB MONGODB_DATABASE_URL=$MONGODB_DATABASE_URL \ # Application BASE_URL=$BASE_URL \ # Sign-up restriction SIGNUP_DISABLED=$SIGNUP_DISABLED \ SIGNUP_ALLOWED_DOMAINS=$SIGNUP_ALLOWED_DOMAINS \ SIGNUP_ALLOWED_EMAILS=$SIGNUP_ALLOWED_EMAILS # Create app directory. WORKDIR /app RUN chown node:node / # Install pnpm RUN npm install -g pnpm # Copy application dependency manifests to the container image. COPY ./package*.json ./ COPY ./pnpm-lock.yaml ./pnpm-lock.yaml COPY ./pnpm-workspace.yaml ./pnpm-workspace.yaml COPY ./lerna.json ./lerna.json COPY ./packages/server/package*.json ./packages/server/ # Install application dependencies RUN apk update RUN apk add python3 build-base chromium # Set PYHTON env ENV PYTHON=/usr/bin/python3 # Install packages dependencies for production. RUN pnpm install COPY --chown=node:node ./packages/server ./packages/server # # Creates a "dist" folder with the production build RUN npm run build:server --skip-nx-cache CMD [ "node", "./packages/server/build/index.js" ]