110 lines
2.6 KiB
Docker
110 lines
2.6 KiB
Docker
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
|
|
|
|
# New Relic config file.
|
|
ENV NEW_RELIC_NO_CONFIG_FILE=true
|
|
|
|
# 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 --chown=node:node ./ ./
|
|
|
|
# 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 pnpm run build:server --skip-nx-cache
|
|
|
|
CMD [ "node", "./packages/server/build/index.js" ] |