2022-01-17 07:08:17 +00:00
|
|
|
FROM node:14.17.3-alpine as builder
|
2021-08-26 15:04:30 +00:00
|
|
|
|
2021-08-01 09:28:48 +00:00
|
|
|
# Fix for JS heap limit allocation issue
|
2021-11-20 01:25:54 +00:00
|
|
|
ENV NODE_OPTIONS="--max-old-space-size=4096"
|
2021-08-01 09:28:48 +00:00
|
|
|
|
2022-01-17 07:08:17 +00:00
|
|
|
RUN npm i -g npm@7.20.0
|
2021-08-26 15:04:30 +00:00
|
|
|
RUN npm install -g @nestjs/cli
|
|
|
|
|
|
2021-08-01 09:28:48 +00:00
|
|
|
RUN mkdir -p /app
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
2022-01-17 07:08:17 +00:00
|
|
|
COPY ./package.json ./package.json
|
|
|
|
|
|
|
|
|
|
# Building ToolJet plugins
|
|
|
|
|
COPY ./plugins/package.json ./plugins/package-lock.json ./plugins/
|
|
|
|
|
RUN npm --prefix plugins install
|
|
|
|
|
COPY ./plugins/ ./plugins/
|
|
|
|
|
RUN npm run build:plugins
|
|
|
|
|
|
|
|
|
|
ENV NODE_ENV=production
|
2021-08-01 09:28:48 +00:00
|
|
|
# Building ToolJet server
|
2022-01-17 07:08:17 +00:00
|
|
|
COPY ./server/package.json ./server/package-lock.json ./server/
|
|
|
|
|
RUN npm --prefix server install --only=production
|
|
|
|
|
COPY ./server/ ./server/
|
|
|
|
|
RUN npm --prefix server run build
|
|
|
|
|
|
|
|
|
|
FROM node:14.17.3-alpine
|
|
|
|
|
|
|
|
|
|
ENV NODE_ENV=production
|
|
|
|
|
ENV NODE_OPTIONS="--max-old-space-size=4096"
|
|
|
|
|
RUN apk add postgresql-client freetds
|
|
|
|
|
|
|
|
|
|
RUN mkdir -p /app
|
|
|
|
|
|
|
|
|
|
# copy plugins dependencies
|
|
|
|
|
COPY --from=builder /app/plugins/dist ./app/plugins/dist
|
|
|
|
|
COPY --from=builder /app/plugins/client.js ./app/plugins/client.js
|
|
|
|
|
COPY --from=builder /app/plugins/node_modules ./app/plugins/node_modules
|
|
|
|
|
COPY --from=builder /app/plugins/packages/common ./app/plugins/packages/common
|
|
|
|
|
COPY --from=builder /app/plugins/package.json ./app/plugins/package.json
|
|
|
|
|
# copy server build
|
|
|
|
|
# NOTE: typescript dependency on /server/scripts and typeorm for db creation and migration.
|
|
|
|
|
# Need to check if we can optimize such that only executable dist from prev stage can be copied
|
|
|
|
|
COPY --from=builder /app/server ./app/server
|
|
|
|
|
|
|
|
|
|
WORKDIR /app
|
2021-08-01 09:28:48 +00:00
|
|
|
|
2022-01-17 07:08:17 +00:00
|
|
|
ENTRYPOINT ["./server/entrypoint.sh"]
|