mirror of
https://github.com/ToolJet/ToolJet
synced 2026-04-30 09:57:19 +00:00
* added all pending cloud migration * restrict cloud migrations * added cloud data-migrations * Added cloud entities * keep tables across all * cloud licensing initial changes * fix * payments module * license counts updates * update * Added all pending cloud migration to pre-release + Payments module (#13006) * added all pending cloud migration * restrict cloud migrations * added cloud data-migrations * Added cloud entities * keep tables across all * payments module * license counts updates * update * migration fixes * pass orgId * movement * added cloud instance settings * org id to license terms * before merge * dockerfile changes for cloud * migration fixes * subscription * merge main * posthog-js package * fix * selhostcustomer migration timestamp update * fix * fixes * fix * fix * Adding cloud dockerfile changes * migration fix * fix * fix * fix * fixes * added migration progress * fix * added migration files for cloud * fix * added migrations for cloud * add organizationId for pages controller * fixes for plugins script * fix * final * added cloud licensing envs * UI WRAPPER BUG * fix * orgId groups fix * lint check fixes * Refactor Dockerfiles to use dynamic branch names for builds * Feature/promote release permission management (#13020) * migration and entity changes * removed extra migration * added default group permissions * basic ui changes * added promote and release permissions * fixed tooltips for promote and release buttons * fix * fixed app promote ability check * ce compatibility ui change * ui fixes * removed console.log * removed comments * updated ee-preview.Dockerile * using base img node:22.15.1-bullseye * fix for ce render * Update ce-preview.Dockerfile * Update ee-preview.Dockerfile * ui fix * fix * fixes * fixes * fixes * fixes * minor fixes * fix --------- Co-authored-by: Souvik <psouvik260@gmail.com> Co-authored-by: Adish M <44204658+adishM98@users.noreply.github.com> * Bugfix/git sync pre release (#13098) * bugfixes * ui fixes for disabled states in version creation * minor fixes * removed unused imports * fixes * removed comments * module file fixes * module fixes * white-labelling fixes * login-configs * fix for migration for ce * Fix for app count guard (#13131) * fix for app count guard * added check * for debug * license key * Modules : Platform Functionality (#12994) * init * mod * app import-export * licensing and UI * review and permissions * update * updates * update * update * fix breadcrumb * fix app builder error * remove launch button for modules * fixed homepage * fix permission check --------- Co-authored-by: platform-ops123 <platformops545@gmail.com> Co-authored-by: gsmithun4 <gsmithun4@gmail.com> * reverted logs * tjdb guard and dark mode (#13137) * ui fixes * added modules module * removed unused imports * fix * fix * Cypress fix * fixes for cloud instance level licensing (#13146) --------- Co-authored-by: platform-ops123 <platformops545@gmail.com> Co-authored-by: Rudra deep Biswas <rudra21ultra@gmail.com> Co-authored-by: Adish M <adish.madhu@gmail.com> Co-authored-by: Rudhra Deep Biswas <98055396+rudeUltra@users.noreply.github.com> Co-authored-by: Vijaykant Yadav <vjy239@gmail.com> Co-authored-by: Rohan Lahori <64496391+rohanlahori@users.noreply.github.com> Co-authored-by: Souvik <psouvik260@gmail.com> Co-authored-by: Adish M <44204658+adishM98@users.noreply.github.com> Co-authored-by: rohanlahori <rohanlahori99@gmail.com> Co-authored-by: ajith-k-v <ajith.jaban@gmail.com>
137 lines
5.1 KiB
Docker
137 lines
5.1 KiB
Docker
FROM node:22.15.1 AS builder
|
|
|
|
# Fix for JS heap limit allocation issue
|
|
ENV NODE_OPTIONS="--max-old-space-size=4096"
|
|
|
|
RUN npm i -g npm@10.9.2
|
|
RUN npm cache clean --force
|
|
RUN npm install -g @nestjs/cli
|
|
|
|
RUN mkdir -p /app
|
|
WORKDIR /app
|
|
|
|
# Set GitHub token and branch as build arguments
|
|
ARG CUSTOM_GITHUB_TOKEN
|
|
ARG BRANCH_NAME
|
|
|
|
# Clone and checkout the frontend repository
|
|
RUN git config --global url."https://x-access-token:${CUSTOM_GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/"
|
|
|
|
RUN git config --global http.version HTTP/1.1
|
|
RUN git config --global http.postBuffer 524288000
|
|
RUN git clone https://github.com/ToolJet/ToolJet.git .
|
|
|
|
# The branch name needs to be changed the branch with modularisation in CE repo
|
|
RUN git checkout ${BRANCH_NAME}
|
|
|
|
RUN git submodule update --init --recursive
|
|
|
|
# Checkout the same branch in submodules if it exists, otherwise stay on default branch
|
|
RUN git submodule foreach 'git checkout ${BRANCH_NAME} || true'
|
|
|
|
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/
|
|
ENV NODE_ENV=production
|
|
RUN npm --prefix plugins run build
|
|
RUN npm --prefix plugins prune --production
|
|
|
|
ENV TOOLJET_EDITION=cloud
|
|
ENV NODE_ENV=production
|
|
|
|
# Building ToolJet server
|
|
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 debian:12
|
|
|
|
RUN apt-get update -yq \
|
|
&& apt-get install curl gnupg zip -yq \
|
|
&& apt-get install -yq build-essential \
|
|
&& apt-get clean -y
|
|
|
|
RUN curl -O https://nodejs.org/dist/v22.15.1/node-v22.15.1-linux-x64.tar.xz \
|
|
&& tar -xf node-v22.15.1-linux-x64.tar.xz \
|
|
&& mv node-v22.15.1-linux-x64 /usr/local/lib/nodejs \
|
|
&& echo 'export PATH="/usr/local/lib/nodejs/bin:$PATH"' >> /etc/profile.d/nodejs.sh \
|
|
&& /bin/bash -c "source /etc/profile.d/nodejs.sh" \
|
|
&& rm node-v22.15.1-linux-x64.tar.xz
|
|
ENV PATH=/usr/local/lib/nodejs/bin:$PATH
|
|
|
|
ENV NODE_ENV=production
|
|
ENV TOOLJET_EDITION=cloud
|
|
ENV NODE_OPTIONS="--max-old-space-size=4096"
|
|
RUN apt-get update && apt-get install -y postgresql-client freetds-dev libaio1 wget
|
|
|
|
# Install Instantclient Basic Light Oracle and Dependencies
|
|
WORKDIR /opt/oracle
|
|
RUN wget https://tooljet-plugins-production.s3.us-east-2.amazonaws.com/marketplace-assets/oracledb/instantclients/instantclient-basiclite-linuxx64.zip && \
|
|
wget https://tooljet-plugins-production.s3.us-east-2.amazonaws.com/marketplace-assets/oracledb/instantclients/instantclient-basiclite-linux.x64-11.2.0.4.0.zip && \
|
|
unzip instantclient-basiclite-linuxx64.zip && rm -f instantclient-basiclite-linuxx64.zip && \
|
|
unzip instantclient-basiclite-linux.x64-11.2.0.4.0.zip && rm -f instantclient-basiclite-linux.x64-11.2.0.4.0.zip && \
|
|
cd /opt/oracle/instantclient_21_10 && rm -f *jdbc* *occi* *mysql* *mql1* *ipc1* *jar uidrvci genezi adrci && \
|
|
cd /opt/oracle/instantclient_11_2 && rm -f *jdbc* *occi* *mysql* *mql1* *ipc1* *jar uidrvci genezi adrci && \
|
|
echo /opt/oracle/instantclient* > /etc/ld.so.conf.d/oracle-instantclient.conf && ldconfig
|
|
# Set the Instant Client library paths
|
|
ENV LD_LIBRARY_PATH="/opt/oracle/instantclient_11_2:/opt/oracle/instantclient_21_10:${LD_LIBRARY_PATH}"
|
|
|
|
WORKDIR /
|
|
|
|
RUN mkdir -p /app
|
|
|
|
# copy npm scripts
|
|
COPY --from=builder /app/package.json ./app/package.json
|
|
|
|
# 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
|
|
COPY --from=builder /app/server/package.json ./app/server/package.json
|
|
COPY --from=builder /app/server/.version ./app/server/.version
|
|
COPY --from=builder /app/server/keys ./app/server/keys
|
|
COPY --from=builder /app/server/node_modules ./app/server/node_modules
|
|
COPY --from=builder /app/server/templates ./app/server/templates
|
|
COPY --from=builder /app/server/scripts ./app/server/scripts
|
|
COPY --from=builder /app/server/dist ./app/server/dist
|
|
COPY --from=builder /app/server/src/assets ./app/server/src/assets
|
|
|
|
COPY ./docker/cloud/cloud-entrypoint.sh ./app/server/cloud-entrypoint.sh
|
|
|
|
# Define non-sudo user
|
|
RUN useradd --create-home --home-dir /home/appuser appuser \
|
|
&& chown -R appuser:0 /app \
|
|
&& chown -R appuser:0 /home/appuser \
|
|
&& chmod u+x /app \
|
|
&& chmod -R g=u /app
|
|
|
|
RUN mkdir -p /home/appuser/.npm/_cacache \
|
|
mkdir -p /home/appuser/.npm_cache_tmp \
|
|
mkdir -p /home/appuser/.npm/_logs \
|
|
&& chown -R appuser:0 /home/appuser/.npm \
|
|
&& chmod g+s /home/appuser/.npm_cache_tmp
|
|
|
|
# Set npm cache directory
|
|
RUN npm config set cache /tmp/npm-cache --global
|
|
ENV npm_config_cache /tmp/npm-cache
|
|
|
|
ENV HOME=/home/appuser
|
|
|
|
# Switch back to appuser
|
|
USER appuser
|
|
|
|
WORKDIR /app
|
|
# Dependencies for scripts outside nestjs
|
|
RUN npm install dotenv@10.0.0 joi@17.4.1
|
|
|
|
RUN npm cache clean --force
|
|
|
|
ENTRYPOINT ["./server/cloud-entrypoint.sh"]
|